View and View/Entity: IOC event destruction

Event unbinds happen now in View/Entity superclass, View. They happen
through the IOC .stopListening() method, provided by pubsub trait.

This alleviates the reliance on `this._model` in View/Entity. All
subclasses are encouraged to use the IOC bind .listenTo() to establish
binds on their models, or to call the model unbinds manually.

Fixes #60
Stripped version info from package.json
0.4.0
Controller/Entity: testing destroy()
Views: wrappers for DOM manipulation

Instead of relying on jQuery API on all `$view`, provide and use wrapped
functions that will use the jQuery API if it exists. But if not, uses
raw DOM API.

Also makes `$view` into DOM elements when only string is returned from
templating.
Element and Entity View tests: covers destroy cases

In addition to other minor branches.
trait/promise: testing for thenable and promise

Missing tests for two methods.
trait/pubsub: complete testing for all provided methods

Missing tests were filled in for new .one() and for additional cases of
.listenTo and .stopListening
util/: adding istanbul ignore

For amdefine in node environments
util/construct test: testing edge cases

Like what happens when your constructor has a return value.
util/diff: checking deep objects

Used to think different objects are different regardless of their
content. Now recurses properly into object tree.
View test: covering new static methods

Static helper methods wrap around DOM manipulators.
Model: killing unused markDirty()

It used to be used for a fast path, which no longer exists due to its
troublesome nature.
Class: _super edge case correction

When extending with a prototype key '_super', extended methods do not
clean up correctly if they call `this._super()`
Istanbul ignore lines for amdefine

amdefine used in node environments to avoid module.exports
Promise test: additional constructor chaining cases

Tests what happens when throwing another promise into the constructor of
a promise.
Build of nbd 0.4.0
util/curry test: module returning original impl
package.json: providing preinstall to update npm

This is specifically done to allow travis-ci to use latest NPM version
for support of caret (^) versioning in semver 2.0
Promise test: increasing timout for stability

Travis-CI's firefox seems to have trouble with chains firing in time