An abstract Observer that allows asynchronous cancellation by implementing Disposable.

All pre-implemented final methods are thread-safe.

Use the public dispose() method to dispose the sequence from within an
onNext implementation.

Like all other consumers, DisposableObserver can be subscribed only once.
Any subsequent attempt to subscribe it to a new source will yield an
IllegalStateException with message "It is not allowed to subscribe with a(n) <class name> multiple times.".