Add events via init

The events object in controllers was not sufficient when multiple events of the same
type should be called, e.g. click.

* Add init method to controllers
* Call init before registering view
* Add addEvent method
* Add getEventIterator method
* Bind events using getEventIterator