vim: start on vim keybindings prototype.
vim: x should never cause non-current lines to change.

This will no longer start deleting the next line or the previous line.
It will work forward or backwards on the current line only.
vim: implement basic "o" and "<Shift>o" support.

This still needs to interacti with the auto-indent provider so that
we can get the right character offset.

That will probably take some changes to the auto-indent layer so that
we can avoid synthesizing GdkEventKey events.
vim: remove dead comment.
vim: fix comment on GDK_KEY_a.
vim: make delete selection match VIM for removing whole lines.
editor: remove duplicated commands implemented by VIM mode.
editor: make beginning search a GbSourceView signal.

This allows the VIM engine to initiate a search as well as the <Control>F
accelerator.
vim: slash should initiate search.
vim: add some todo notes.
editor: make indent/unindent public API for source view.
vim: indent/unindent selection upon > or < key press.
vim: track connection state so we can warn if we find any failures.
vim: possibly auto-indent after `o` or `O` in normal mode.
vim: implement `D` to delete to end of line.
vim: implement <Control>u in insert mode.

This will delete text up to the current cursor position. If the cursor
is on position 0, it will remove the newline.
vim: match vim when `Vx` on an empty line.
vim: `$` jumps to end of line in normal mode.

There might be some debate on whether or not we should actually move
backwards one character from here. But I don't have a right answer so
I'll just leave the obvious implementation.
vim: support overwrite mode with `R` command.
vim: `x` should move the cut text into the selection clipboard.