Subscribable Event Rework
Simplified implementation of subscribable event
- Unsubscribe now marks handler as invalid
- On trigger, all valid handlers are called and all invalid are discarded
This means that a handler can now unsubscribe itself without fear of UB since the handler will only be removed at the next call to trigger @ehebrard