Aop events

This PR adds AOP events. Methods annotated with `@Event` will trigger a framework event that `EventSubscriber`s can consume. Events can have payloads using the `EventPayload` annotation on method parameters.

The `events` property must be set to `true` in `infinitum.cfg.xml` to enable this.