An object which has a collection of event listeners and can broadcast an event to the listeners.
Adds an event subscription. Every time an event occurs, the handler is called, receiving an instance of the event. The subscription is removed when the given lifetime expires.