Fix context of event callbacks

The context was being set inside a forEach function which will set the `this` context to global (`window` / `global`). Since this is designed to be applied to an object that object should be the context and not the global.

This will properly set the context. Includes specs.

Example:

   function callback(e) {
     console.log(this.foo); // => 'bar'
     console.log(e);        // => 'foobar'
   }

    function MyObj() {
     this.foo = 'bar';
   }

    Emitter(MyObj.prototype);

    new MyObj()
     .on('foo', callback)
     .emit('foo', 'foobar');