Add in DataSource.

DataSource is an object that wraps data (an any[]) and metadata (any).
A Renderer is associated with a DataSource on creation and will auto-
rerender when the DataSource updates (the data or metadata changes).
Renderers can auto-create DataSources if they are passed data instead.

Close #277.
Fix minor spelling error, inline registerListener() calls
Add an incrementing componentID counter to component
Replace clipPathId with componentID.
Add unit tests.
Merge pull request #280 from palantir/datasource

Datasource --> 0.8.0
Iniital commit - refactor renderer API to use projectors. WIP; doesn't compile

Conflicts:
	src/circleRenderer.ts
	src/renderer.ts
	src/xyRenderer.ts
Source compiles. Still WIP. Tests do not compile. Going to rebase onto Justin's datasource change.

Conflicts:
	src/circleRenderer.ts
	src/lineRenderer.ts
Change tslint so we turn off camelcase rule to allow _IProtectedInterfaces
CircleRenderer works, everything compiles. Have not yet fixed BarRenderer or got tests passing.
Override method signature on quantitiveScale to enable method chaining.
Clean up return type on ordinalScale.domain
Finish the Renderer.projector refactor
(Where by finish I mean it passes unit tests, examples still broken and code not final.)
Instead of having custom xAccessor, yAccessor setters on renderers and other ad hoc methods
there is a Renderer.projector method which takes an attribute to project onto (eg "cx" or "stroke"),
an accessor function to get the perspective out of the data source, and (optionally) a scale to project
the data through.
Reduce unit test coverage to .80 for 0.8.0 ;)
Rename some variables
Fix a typo in naming of generateAttrToProjector
Add additional unit testing for Renderer.project and Utils.accessorize
Merge pull request #281 from palantir/0.8.0-refactor-renderer

0.8.0 refactor renderer
Remove blanket data-cover from the main test target (tests.html)
and make a seperate test target for coverage (coverage.html).
Grunt test hits the coverage version, naturally.
Close #282.
Fix use of .project in commit-dashboard
Refactor Scale and DataSource to seperate out Broadcaster.
Add new functionality (deregistering listener callbacks).
Add unit tests.
Close #283.
Update comments + remove newline