Update Interaction.Key to use dispatchers.

Created Dispatcher.Keypress, which calls callbacks when the user is
moused over a target element.

Interaction.Key now uses Dispatcher.Keypress, and can take callbacks
to be called on any keyCode. This change allows multiple Key Interactions
to be attached to the same component.

API changes:
 - Interaction.Key.callback() was removed in favor of Interaction.Key.on(),
   which allows the user to specify a key code to listen for.
 - Interaction.Key 's constructor no longer takes in a key code.

Partly addresses #837 and #1209.
Some refactors re: Dispatcher.Keypress and Interaction.Key

- Make initial target argument in Dispatcher constructor optional.
- Allow retrieving callback from Dispatcher.Keypress
Merge pull request #1219 from palantir/key-interaction-namespace

Update Interaction.Key to use dispatchers.