kill 'onText' event, directly do cursor.write(ch)

bubbling the 'onText' event is a heavyweight thing that's unused,
delegating to surrounding nodes like the rest of the cursor's methods
now do is much simpler and flexible
'onKey' event bubbles with cursor as an argument

much cleaner than storing it as this.cursor on createLeftOf, like
LatexCommandInput and Vector were doing.

Note that the entire line of the this.cursor assignment in
LatexCommandInput::createLeftOf could be removed because the
insAtRightEnd was unnecessary, placeCursor already does that.

This also fixes \vector when rendered from LaTeX (as if we give a shit,
that shit should've been on a experimental branch anyway)
Merge branch 'feature.rm-vector' into refactor.key-events

because fixing Vector::onKey is too much trouble.

Conflicts:
	src/commands.js
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
mv LatexCommandInput's block's .write/keystroke to createBlocks

where we're already also defining .focus and .blur on the block
inline and rm Cursor::{write,insertCh}

only createRoot used Cursor::write, and only Cursor::write and the
'cmd' public API call used Cursor::insertCh

this also makes the 'key' and 'text' textarea manager event handlers in
createRoot symmetrical (both call methods on cursor.parent)

I still dislike prepareWrite, but by removing unnecessary indirection
this will make refactoring it away later clearer.
Merge pull request #186 from mathquill/refactor.key-events

Don't bubble 'onKey' and 'onText' events, just delegate method calls