Rename keyhandler -> bindings
Remove bindings.keymap in lieu of stacked keymaps

The stack is available bindings.keymaps, but there's now very little
need to mess with that.
Bindings.push now allows pushing a blocking keymap

Via an extra options parameters; block = true means that no
keymaps further down in the stack will be inspected.
bindings.push now accepts `pop` option

When set to true, the keymap is automatically popped after a
dispatch. In effect, it creates one-time keymaps.
Don't invoke on_unhandled for source specific maps

Only for the "real" map. Also simplify the lookup.
Bindings: Add convinience support for sub maps

Any table specified as a binding in a keymap is now automatically
pushed as a new keymap, with the pop option provided.

Hello easy Emacs key bindings.
Update command bindings display for stacked keymaps

It's still somewhat of a kludge since it assumes the editor
section of the keymaps is the only interesting one. For practical
purposes that's fine right now, but might have to be revisited
later on.
Propagate error from main

We need that for the exit code to be correct.