An asynchronous event emitter for node.js and the browser