[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
I don't understand what you mean by this. findKey is a new function added to use for CodeMirror keymap's call() param. `handleKey`'s API has not changed, so there should not be any side effects