EventManager is responsible for sending events to controllers, so they can trigger actions at specific times.
For instance, when you press a key, or the game ticks, it is an event.
EventManager will contact all the controllers so they can take the appropriate action.
Registers a listener that will be updated
UnRegisters a listerner
All listeners attached to this EventManager
The current evnets in queue
Send update signal to all Controllers