This is a major rework of the underlying code...
Step one has been eliminating gulp and jshint for scripts and
eslint latest. Cleaning up the code style to make the new lint
happy and working on getting everything ship shape.
Step two is cleaning up the tests a bit
Step three is modifying the emit function to be non-blocking on
the main event loop.
The biggest change here is that each emit call is now wrapped in an setImmediate so that it is called in a non-blocking way to keep things from binding the main event loop.