Added Event system.
Added event invoking.
Fixed Attach for events.
Added macro hack to attach member functions in a nicer looking way.
Merge branch 'feature/event_system' into develop