Finish event manager

Each event you want to listen to is identified by it's source (the item
you bind your event to).
When an event is received by the event manager, it checks if its source
exists in the handlerList.
If it does, each handler in the list is called.
If not, EventException!