Change DeferredPromise<V> to be package-private, made it no longer both a Promise<V> and Deferred<V> (to avoid casting to complete short-circuited).  Added timeout to FuturePromise.
Removed unnecessary code, changed name of "then" method to "spread" and added pattern element count to reduce overload confusion
Use simpler subscription for ObservablePromise
Add static method to create patterns, make constructor package-private.  Add method to get items by index.
Make callback registration private, implementors can use whenCompleted
Have ComposedPromise chain cancellation to the promise being used to complete
Tests for getNow and cancellation chaining
Tests for PromiseManager.whenAllCompleted, *.whenAllResolved, *.whenAnyCompleted and *.whenAnyResolved
Implement an enum of executors (current thread or new daemon thread), set FuturePromise to use an executor to block on the Future defaulting to a new thread executor
Fix to method refactoring