Yet another EventEmitter implementation. Designed to enforce typechecking.