Use key hanlders for all key presses.

Move all functionality from static emacs style bindings to one that uses
handlers that can be added or removed or customized based on desired
result.