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.
In practice, if there's a one-to-one mapping between `B.data` and `B.selection`, then it has the same effect. I could do:
```Typescript
var diffSelection = a.selection.filter(function(d, i) {
  return b.selection[0].indexOf(this) === -1;
});
```
Which would produce a different effect in the event that the data changed but the selection did not.