Use own `EventEmitter`

If you think the object construction looks strange, [read this](https://github.com/getify/You-Dont-Know-JS/blob/master/this%20&%20object%20prototypes/ch6.md) for an argument against `new`, `instanceof`, ES6 classes, etc.

If this looks good I will move it out into a partial/module.