Replace Observable with Dispatcher on Promise and Stream constructors

Promise and Stream's use of a Reactor (implementation of Observerable)
should be an implementation detail but it's exposed by the classes'
constructors. Users shouldn't have to care that a Reactor is used,
what they do care about is the dispatching mechanism that will be
used by the Promise and Stream to notify Consumers, call Functions,
etc.

Promise and Stream have been updated to take a Dispatcher rather than
an Observable, as has their superclass, Composable. The relevant
Spec classes have also been updated.

Fixes #122