Use controller as handlers obj for saneKeyboardEvents()

First, change names of the events to be longer and more unambiguous,
`key` => `keystroke` and `text` => `typedText`, and don't handle the `cut`
event.

Then we can us move the `keystroke` event handler to `keystroke.js`, because
the `.keystroke()` method on the controller can be defined anywhere.

A `typing.js` could even be created for `.typedText()`, but that doesn't
really seem useful unless it also makes sense to define `Node::write()` in
`typing.js` (that way, the contract/only call site of `.write()` and its
default implementation are in the same place).