Update keybinding with improvements from iD project

This adds the following:

* Simple disengagement of bindings with .off()
* Allows namespacing of the keybindings
* Proper comment and license notice