* Refactor event handling in controllers to use a method to define
the hash (and thereby allow inheritance)
* Refactor link handling so that links which should be handled by the
router can be handled by the base class
* Change the router to throw out controllers for pages which aren't
on-screen (and thereby avoid a lot of weirdness)