EventEmitter: Make the `listeners` property public

Making it public allows subclasses to use it and testing can be
done better. It also makes it more transparent for users if they
want to inspect the emitter.
EventEmitter: Simplify by allowing only one event type per call