Update Component.classed so it handles cssClass = undefined gracefully.
Decompose Dataset into Data and Metadata.
Also improve renderer.data and make Renderer.constructor call
Renderer.data(dataset) rather than doing special logic.
Side-effect for convenience, metadata.cssClass applied to the
renderer Element not the renderer renderArea.
Close #173 #174.
Make Renderer constructor default dataset to null
Refactor IAccessor so it takes in metadata

This winds up being a little complicated, in many cases where we use the
accessor we are passing it into D3 so it will just take a datum and index.

To accomodate these cases, we wrap the accessor in a closure that contains
the metadata prior to passing it into the D3 code.

Wound up splitting the .data call into three calls, .data, .metadata, .dataset.
Setting metadata has some performance implications, as discussed in internal comments.
Same flags will get used for setting accessors too (when I implement setters).
Renderers now implement Renderer._paint() so we can teardown appropriately.

Also, rename some variables to use our new underscore-package-private convention.
Rename Renderer.dataArray to Renderer._data
Add more unit tests for the new IAccessor functionality.

Also stop using the IMetadata interface for the moment... need to
figure out how to use it in a good way.
Merge pull request #179 from palantir/refactor-accessor

Refactor IAccessor so it takes in metadata
Add a unit test to catch #180 (prior to fixing it, verify fails)
Fix #180
Merge pull request #184 from palantir/master

Merge master into axis-dev to pick up changes.