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
Merge pull request #280 from palantir/datasource

Datasource --> 0.8.0