Decoupled keyboard binding manager

Pages can register their own keybindings.  This allows gmail to work,
github is still an open question.

Additionally, added in toolNames, that are distinct from the message, so
the message can change between versions
Refactoring for clarity
Added toolNames to github