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.
Can we still rename the function name at least?  When I think of getCurrentlyHovered, my immediate thought is "getCurrentlyHovered...Interaction??".  Since the idea of HoverData is not inherent in the name of the function, it doesn't seem obvious that the function is retrieving the HoverData