[WIP] Base init and attribute change events bypassing the event system if
there are no listeners.

Initial pass.

All tests pass:
✔ [Total]: Passed: 11009 Failed: 0 Total: 11100 (ignored 91)

TODO:

a) Add specific tests for init and attribute changes with/without listeners,
   and for init fireOnce behavior.

b) See if we can remove need for Model to override the private attribute change
   defFn, so we can remove one of the hacks which calls _defAttrChange with a false
   facade.
Made the Attribute change event bypass for no listeners a little less hacky

Instead of creating a psuedo facade and invoking `_defAttrChangeFn`,
we now call `_setAttrVal` directly, mirroring what we do for the initial set (when
there's no event fired).

As a result we needed to change was the Model `_defAttrChangeFn` override which it
does to capture the coalesced changes during a `setAttrs` transaction. Changed it to
override `_setAttrVal` instead. Note, both these methods are currently private.

All library unit test pass.
Tests for attribute change events, and base init with nolistener bypass
Fixed extra awe over the boolean type (APIDoc change only)
Merge branch 'dev-3.x' into attribute-base-nolistener-event-bypass

Fixed expected conflict due to fireOnce facade fixes in dev-3.x.

All tests pass after merge conflict resolution.

Conflicts:
	src/event-custom/js/event-facade.js
Merge branch 'attribute-base-nolistener-event-bypass' into dev-3.x
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Fixed comment formatting. No code changes
Build for Attribute change and Base init no listeners bypass.

All library tests pass through phantomjs, FF, Chrome, Safari, iOS, IE8, IE9 aside
from the x-frame lang tests which have started failing consistently on IE8, IE9
prior to this commit.
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x