code: function Emitter() {
    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  
    // this._eventContexts is a map of maps that track of listener/event pairs
    // created by some object / context
    //
    // {
    //   context: {
    //     listener_fn: event type,
    //   },
    // }
    //
    this._eventContexts = new Map();
    this.setMaxListeners(options.maxListeners || 0);
  }
docs: Node EventEmitter + some convenience methods
  @class
  
  This emitter lets you do this:
  
  > emitter.using(obj)
  >   .on('event', obj.handleEvent)
  >   .on('thing', obj.doThing)
  >
  > emitter.removeListenersCreatedBy(obj)
  
  Because this doesn't work:
  
  > emitter.on('event', this.fn.bind(this))
  > emitter.removeListener('event', this.fn.bind(this))
  
  @param {object} options