A drop-in replacement for EventEmitter that can work with cancelable event objects, and a base Emitter class that implements a parent/child architecture and event tree traversal.