in RootMathBlock::onKey, use cursor.root instead of this

prep for non-bubbling cursor.parent.keystroke()

in fact, for Ctrl-A, directly acting on the root is also cleaner
cursor.parent.keystroke() replaces bubbling 'onKey'

since 'keystroke' isn't bubbled, it now has to be on Node.prototype
instead of just on the root. Don't want the huge switch/case in tree.js,
so it goes in the newly created interaction.js, the idea is eventually
all the browser events stuff in rootelements.js will be moved there.

also since 'keystroke' isn't bubbled, LatexCommandInput::onKey has to be
moved to a .keystroke on the MathBlock inside the LatexCommandInput.

when overriding keystroke, instead of return false to block bubbling,
have to explicitly call _super.keystroke to continue default.
Spacebar moved from {Node => MathBlock}::keystroke

Node should have the functionality shared between text and math, and
additional functionality for math (Spacebar) should be added by math.js,
not added in Node than having to be subtracted by text.js

Cursor::escapeDir now only deals with Tab (I kind of think it shouldn't
even be dealing with the event stuff at all)

unfortunately RootTextBlock extends MathBlock and still has to override
keystroke for now