Synchronize Observer on OperationMerge

fixes https://github.com/Netflix/RxJava/issues/200

This is necessary because by definition Merge is subscribing to multiple sequences in parallel and is supposed to serialize them into a single Observable.
Synchronization of Merge operator (fixes)

- return AtomicSubscription not MergeSubscription which I was accidentally still returning
- try/finally in unit test so threads are released even if assertion is thrown
Trying to fix non-deterministic test

- not sure of a way other than putting Thread.sleep in here to give time after each CountDownLatch triggers for the process scheduler to execute the next line of each thread

See https://github.com/Netflix/RxJava/pull/201 for more information.
Merge pull request #201 from benjchristensen/issue-200-merge-synchronization

Synchronize Observer on OperationMerge