Move .selectionChanged from root block to controller
Make selectionChanged a normal Controller method

...rather tha monkey-patched in setSelectionChangedFn.

.selectFn still has to be monkey-patched, but just do that in
Controller::staticMathTextareaEvents and editablesTextareaEvents.

Note that setTextareaSelection must be an exposed method and can't just
be an anonymous function passed to setTimeout() because it also needs to
be called synchronously (not in a timeout) in the 'copy' event handler.

In the 'focus' event handler, ctrlr.selectionChanged() waits a timeout
before calling .select() on the textarea anyway, no reason to wait
another timeout (plus would have to make an anonymous function, because
it's now a normal method that uses `this`).
Controller listens for selectionChanged on Cursor

Rather than Cursor reaching into the controller, the controller sets a
hook on the cursor. (Somewhat more compliant with the Law of Demeter?)

:/ I don't love this, especially the part where there's just an implicit
cursor method to monkey-patch if you want to use selection with your
cursor.
Cursors no longer have a .root

Cursors are now like, stateless or something. Woooo. I think.

Like, I think this is good for like, having Cursor/Selection be a layer
of information/responsibility below the Controller.
Merge pull request #237 from mathquill/refactor.selectionChanged

Refactor: selectionChanged now a hook