Added base for events system. Needs to be tested.
Compiles and runs with generic events. Needs more testing.
Fixed up the events code. The events are passing through and being caught.
Subjects now remove themselves from observers on destruction. Sufficient testing is done on this.
Slightly integrated the events system with the core engine.
Merge branch 'events'