An abstract SingleObserver that allows asynchronous cancellation by implementing Disposable.

All pre-implemented final methods are thread-safe.

Like all other consumers, DisposableSingleObserver 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.".