The coupling between `RollupEmissionWork` and `RollupEventEmitter` is somewhat unusual.

1. `RollupRunnable` submits parameters through `RollupEventEmitter.emit()`
2. `RollupEventEmitter` then submits a `Runnable` to a threadpool (`RollupEmissionWork`)
3. That `Runnable` then fetches a `nkzawa.Emitter` from `RollupEventEmitter` to actually emit the stuff.

It looks like `RollupEmissionWork` could be made a subclass of `RollupEventEmitter`.  Further, `RollupEventEmitter` doesn't have to be a singleton.  It could be a static member of `RollupRunnable`.  That would allow us to test it with some isolation.

P.S. I'm fine with fixing the latter part in the `RollupRunnable` refactor we've been hinting at.  But I think the weird coupling should be addressed now.