Extract drawing logic to drawers.

Close #1106.
Move drawing logic to drawers.

Close #1106.
Added Interaction.Hover.

Interaction.Hover acts on any Component that has implemented the
Hoverable interface, which allows the Interaction.Hover to query
the Hoverable for data given a cursor position.

Added a hoverMode() call to AbstractBarPlot, which will allow
Interaction.Hover to replace the Interaction.BarHover.
Add in hoverInteractionTests.ts
Merge branch 'develop' into hover-interaction

Conflicts:
	plottable-dev.d.ts
	plottable.d.ts
Color QuickTest Commit
Refactor Interaction.Hover to be clearer.

Factored out the diff-ing of HoverData.

JSDoc-ed Hoverable.
Remove paint method.
Add in missing semicolons.
Travis Fixes
Merge branch 'develop' into 1106_drawers

Conflicts:
	plottable.js
	src/components/plots/abstractBarPlot.ts
Fix reference issue.
Rename methods in Hoverable.

Underscore-protected all methods in Hoverable, as the user is not
intended to call them directly.

Renamed getHoverData --> _doHover. The call retrieves the HoverData,
but is also intended to trigger any visualizations associated with
hovering, so it's not strictly a getter. Renamed to make this clear.
Move create shape to plot.
Revision after Dan's Comments I
Move back creating shape to drawer.
Fix Clustered Bar Plot.
Fix tslint errors.
Initial commit of bar chart labels.
Remove paint from scatter and stacked plots.