Performance by eliminating SubscriptionList/Subscriber & Synchronization

This is an exploratory performance improvement. See discussion at https://github.com/Netflix/RxJava/pull/1384
RuntimeException if invoking request when it can't be
Fast-path for Range

53m -> 160m messages/second when consuming an Observable.range(0, 1000000)
Improve Range/Iterable Perf on Backpressure

Avoid touching a volatile inside the tight loops.
The OperatorObserveOnPerf.observeOnComputation with 1000000 values was taking so long to run I killed it. With these changes it completes:

r.o.OperatorObserveOnPerf.observeOnComputation   1000000  thrpt         5        7.613        6.672    ops/s