Move keybindings into vm.js
harness: add keyboard events