Backpressure-4: Merge & ObserveOn (Not Production Ready)

Further progress on top of https://github.com/Netflix/RxJava/pull/1351 that adds object pooling (of ring buffers) and various improvements while looking at performance.

- Next is to redo the merge implementation that I'm not happy with.
- Pivot and parallel operators seem broken (concurrency bugs with `merge` I think).
- Still have performance problems.


```
../gradlew benchmarks '-Pjmh=-f 1 -tu s -bm thrpt -wi 5 -i 5 -r 2 -prof GC rx.usecases.PerfBaseline.*'
```

```
Benchmark                                        (size)   Mode   Samples         Mean   Mean error    Units
r.u.PerfBaseline.observableConsumption                1  thrpt         5 29341887.334  1377398.290    ops/s
r.u.PerfBaseline.observableConsumption             1024  thrpt         5   235288.206    36803.980    ops/s
r.u.PerfBaseline.observableViaRange                   1  thrpt         5 10995116.886   851761.135    ops/s
r.u.PerfBaseline.observableViaRange                1024  thrpt         5    83175.180     2983.626    ops/s
```

vs 0.19:

```
Benchmark                                        (size)   Mode   Samples         Mean   Mean error    Units
r.u.PerfBaseline.observableConsumption                1  thrpt         5 31394747.471   781746.789    ops/s
r.u.PerfBaseline.observableConsumption             1024  thrpt         5   245864.811     6657.154    ops/s
```
Pivot is a mess. There are two types of failures happening. 

1) Non-deterministically hanging.

If the test is run enough times (I current have an infinite loop in the test to make it happen) it will hang. There are no threads deadlocked, it just never emits an `onCompleted`. Tracking it down it seems one of the `Observable`s never emits and thus never completes.

2) Getting 15 instead of 20

This happens even against v0.19. What I can't tell is if the same issue causing this is also causing the hang. The reason I'm wondering is because this bug reveals itself by missing one of the 4 `Observable`s that should emit data. The hang is also caused by an `Observable` not emitting data (being lost) and never completing.