More cleanup
Adding more explicit lifecycle transitions via a state machine
Removing unused code
Can now intercept DoneEvent. Can now "stop" an exception.
Renaming "done" to "end". Cleaning up FSM creation
Adding FSM tests
Fixing RequestException tests
Emitting complete when intercepted in before. Adding a max transition number.
Lots of cleanup.

Adding tests.
Not emitting multiple "end" events when redirecting.
Moving wrapException to a public function.
Fixing Pool so that it works with completed  mocked futures.
Added a BatchResults class.
Cleaning up tests and adding more ring checks
Cleaning up ring responses, adding guard to ensure toString does not throw
Ensuring redirect "end" is called only onect
Updating tests
Adding Request FSM tests