Add fire() alias (aliases emitEvent)
Add emitEventAsync() function

This function executes the listeners asynchronously, but still as a
whole block of functions; that is, it places the listeners chain on
the event queue (the JS event queue).
Add basic tests for emitEventAsync()
Add some tests, check for arguments parameter