Fix ObserveOn and add ParallelMerge Scheduler overload

- ObserveOn was not correctly recursing when the source was async. It would create a new scheduler (i.e. a new thread) each time.
- Also added unit tests to ParallelMerge
Merge pull request #502 from benjchristensen/observeOn-parallelMerge

Fix ObserveOn and add ParallelMerge Scheduler overload