[vim] Use keymap binding instead of event handlers

Revert back to using CodeMirror keymap for key handling instead of direct key handlers.
https://github.com/codemirror/CodeMirror/issues/2915

@heppe please review at your convenience.
@nightwing you probably have to add a proxy for the `call` property on keymaps in ACE https://github.com/codemirror/CodeMirror/commit/dd2b9d86ac30feb74c0bf0b999893382cd9f1e07
It looks like there's still a bunch of places where the callers are expecting command.