Fixes #61 #62 #63 #64 by Removed the Lifecycle interface completely and added halt() and shutdown() methods to the Dispatcher interface. Re-implemented how isAlive worked and put some basic logic into an abstract class that the other Dispatcher implementations descend from now. Added shutdown() and shutdownNow() calls to the ExecutorServices in RingBufferDispatcher and ThreadPoolExecutorDispatcher to keep them from leaking threads. Updated the tests to reflect the changes in the API.
Eliminate compiler warnings.
Fix a bug where Promises were always being created with a value, even when none was specified.
Minor whitespace changes.