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
Refactor Interaction.Hover to be clearer.

Factored out the diff-ing of HoverData.

JSDoc-ed Hoverable.
Add in missing semicolons.
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.
Refactors, add test cases.

Made diffHoverData() static.

Added test cases to tests for getCurrentlyHovered().

Adjusted D3 defs file: See https://github.com/borisyankov/DefinitelyTyped/pull/2989.
Separate onHoverOver() and onHoverOut() unit tests.
Refactor to make it clearer what the current HoverData is.

lastHoverData --> currentHoverData (more accurately reflects what it is)
getCurrentlyHovered() --> getCurrentHoverData()
Merge branch 'hover-interaction' into develop

Conflicts:
	plottable.js