mixin(object) {
    object.on      = this.on;
    object.off     = this.off;
    object.trigger = this.trigger;
    object._promiseCallbacks = undefined;
    return object;
  }
`EventTarget.mixin` extends an object with EventTarget methods. For
    Example:

    ```javascript
    import EventTarget from 'rsvp';

    let object = {};

    EventTarget.mixin(object);

    object.on('finished', function(event) {
      // handle event
    });

    object.trigger('finished', { detail: value });
    ```

    `EventTarget.mixin` also works with prototypes:

    ```javascript
    import EventTarget from 'rsvp';

    let Person = function() {};
    EventTarget.mixin(Person.prototype);

    let yehuda = new Person();
    let tom = new Person();

    yehuda.on('poke', function(event) {
      console.log('Yehuda says OW');
    });

    tom.on('poke', function(event) {
      console.log('Tom says OW');
    });

    yehuda.trigger('poke');
    tom.trigger('poke');
    ```

    @method mixin
    @for rsvp
    @private
    @param {Object} object object to extend with EventTarget methods