Created a ReactorTaskExecutor that implements both Spring's TaskExecutor and the JDK's Executor interface. This allows a Reactor to be used as an Executor for components that need one and ensures that those components are executing tasks in the same thread as the Reactor.
Tweaks to the TcpClient close Promise test. The CI server exhibits different behavior on the close Promise than do tests run locally. I tweaked the test to wait for a latch to be counted down rather than wait on the close Promise to be fulfilled.
Refactored the Composable/Stream/Promise chain to separate the publishing of values from the consumption of values. This was done by introducing a Deferred class, from which Promises or Streams can be created. The Deferred is the object with the accept() methods on it, making it essential that code that needs to publish values into a Stream or Promise maintain a reference to this Deferred. The code is then free to return the Stream or Promise to the caller by calling Deferred.compose(). The Future class was eliminated in favor of await() and get() methods on the Promise class itself. Base functionality like map() and filter() are provided by the abstract Composable class while more specialized functionality like reduce(), first(), last(), batch(), onSuccess(), onFailure() and others are provided on the Stream or Promise class as appropriate.
Tweak to valueAccepted to recognize the first element of a batch.
Cascade errors, add value, error, supplier helpers for Deferred.PromiseSpec, added test for catching errors downstream.
meaningless hasBlocker
fix some tests
Fix reduce vs batching and tests
copyright
add reduce()
composable parent
remove supplier iface from Composable and rename get to resolve()
solve more tests
add cursor support helper to snapshot a volatile value from Stream
Significant updates, bug fixes, javadoc on Stream, Promise, and their tests.

- Refined the separation of producer and consumer around Deferred, Stream, and Promise.
- Removed some methods from Reactor that involved a "map" function between a Reactor and a Stream. The implementation as it was didn't account for the common uses of Reactor where no replyTo is set on the Event so the "map" operation would never complete. This functionality should be implemented in an EventStream class whose job it is to make sure that events can be propagated through a stream in a fashion similar to the FSM implementation.
- Fixed Stream tests to reflect recent API changes.
- Got halfway through the Promise tests, changing them to reflect recent API changes.
Sync dispatcher between Stream/Promise downstream components, fix benchmark tests
More tests fixed
fix Promise Specs (comment when/merge for now)
comment groovy module for snapshot build
Temporarily remove reactor-groovy from settings.gradle