ObserveOn Cleanup

- make code easier to understand with some refactoring of the pollQueue loop
- add a unit test to ensure correct behavior with a hot Observable source
ObserveOn Error Propagation

- errors were not being propagated if backpressure was exerted (requested==0)
- terminal events do not need to be requested so it now ignores the requested count to emit onError
Merge pull request #1728 from benjchristensen/observeOnErrorPropagation

ObserveOn Error Propagation