Disallow NaN as a key to the strict equality associative array.
Since (NaN !== NaN) the semantics would be all wrong.
Improve testing & documentation & functionality of StrictEqualityAssociativeArray
Change Broadcaster semantics from "is-a" to "has-a"

Classes no longer extend Broadcaster. Instead, they implement the
IListenable interface which indicates that they have a broadcaster.
Listeners now attach to the Lisetnable's Broadcaster.

The goal of this change is to move to an architecture with a simpler
inheritance structure, which will hopefully better manage
complexity in the long term.

Close #534
Merge branch 'master' into hasa-broadcaster
Included conflicts in the commit, will resolve in a followup commit
for transparency

Conflicts:
	plottable.js
	src/core/plot.ts
	src/core/scale.ts
	test/rendererTests.ts
	test/tests.js
Fix merge conflicts
Merge pull request #558 from palantir/hasa-broadcaster

Has-a-broadcaster