Updated controller and made EventQueue singleton.

Controller now fits with the new code structure (no more controller.controller).
The EventQueue has been made singleton and we no longer have to pass around a
reference to the controller to access the queue.