Handle events/listeners better.

Rather than have all the listening for UI events in the controller, the
controller now just listens for events dispatched from other modules. These
modules listen for the UI events.  A bit nicer. Less jQuery listening stuff
in the controller.