Fix Zip race condition

ItemObserver onNext might not acquire the write lock due to an
onCompleted being handled by another thread. When handling
onCompleted, the ItemObserver does not check for any values that are
ready to be emitted, which might cause OperationZip to never emit
OnNext or OnCompleted.
Simplify OperationZip ItemObserver

LinkedList permits null values, no need for NULL_SENTINEL.
Merge pull request #778 from vadims/fix-zip-race

Fix zip race condition
Rename `bind` to `lift`

As per discussion at https://github.com/Netflix/RxJava/issues/775#issuecomment-33075742
`Observer` becomes `Observer implements Subscription`

As per decision at https://github.com/Netflix/RxJava/issues/775#issuecomment-33075742
Move Observer factory methods to Observers

Follow same pattern as rx.observables, rx.schedulers, rx.subjects, rx.subscriptions
Subjects Fixed
Move Observers to rx.observers
Compiling. Unit Tests Failing.

Now that Observer is an abstract class, Mockito is having issues with it so unit tests are a mess.
TestObserver
Operator Tests Retrofitted to use TestObserver

- work around inability of Mockito to correctly mock an abstract class
- 15 of 590 tests still failing
587 of 590 operator unit tests passing
Down to 7 of 893 unit tests failing
Fixed 1 Unit Test - Linked Observer/Subscription where seemingly obvious to do so.
Fix Subject SubscriptionManager

Remove possibility of infinite loop
Clarify intent of unit test
OperationJoinTest - fixing
Ignore JoinsTest.whenComplicated until questions answered
Fix Exception Handling from SafeObserver and Subscriptions
Performance comparison

… numbers from my machine. Can’t fully explain the increases in performance.