Write an EventEmitter class with on(event, handler), off(event, handler) and emit(event, *args).
on registers a callable. emit calls every handler registered for that event, in registration order, passing along whatever arguments it was given, and returns how many it called.
off removes one handler. Emitting an event nobody listens for is not an error - it returns 0.
The same handler may be registered twice and is then called twice.