add forwarding emitter for agregating multiple emitters

This makes it easy to create a system where multiple backend classes emit events but you want to provide a single access point to listen to the events from all the backends.

Usage: 
 - Create a class that extends the `ForwardingEmitter`
 - call `$this->forward($emitter)` for each emitter that should be aggregated

All calls to `listen()` will be forwarded to all registered emitters. Additionally all previously registered hooks are forwarded to the emitter when calling `forward()`

cc @MTGap @DeepDiver1975 @karlitschek @tanghus