Inherit EventEmitter handlers instead of share them

Using simple assignment in the constructor, `this._events` is lifted from the prototype and shared among all instances.

Rather than rely on `util.inherits()` to copy the prototype properties to the subclass instance, we can copy the properties that matter in the constructor, that way inheritance can be done without `util.inherits()`.

This fixes #7157, if I understand it correctly.