editor: implement VIM style movement keys.

Not perfect, but at least it's something. You can move up/down/left/right
in the normal fashion, except that you need <Alt>. This does not implement
things as a command stack like VIM does, meaning you can't combine them
with numbers.

Additionally, another annoyance to fix is that it looses the line offset
when you move to a shorter line. We need to plumb through storage of the
original offset when we truncate and fail to get to the same offset.