Refactor: selectionChanged now a hook

Controller now listens for `selectionChanged` on the cursor, rather than the cursor accessing its controller.

The cursor now doesn't even need a `.root` anymore! The separation of the high-level vs low-level methods described in the [Planned v1.0 Architecture wiki page](https://github.com/mathquill/mathquill/wiki/Planned-v1.0-Architecture) has pretty much been achieved! Yay for layering!