Refactor keymap

Created Action/ActionFunc to wrap common operations
refs #121

This changes how keys are registered to global map of keys to actions, and building the initial default key bindings. PRs #120, #124, and #126 are affected, so please make sure re-arrange your PRs.