Major reimplementation of the event system to make events dispatch on
objects. Consequently, events can only be listened for on a particular
object.