Use lock free strategy

Reduce contention by using CAS (Compare And Swap) operations to replace
subscription
Make unsubscribe + reference modification an atomic operation
Lock free strategy using a sentinel (Thanks to akarnokd)
Code simplification
Simplify code; Junits
fix: getSubscription should not expose internal sentinel subscription
JUnit setting subscription concurrently
Added release notes for Observer.
Added missing empty implementations for Observer methods.
Release notes
Added overrides.
Strange changes ...
Removing BooleanSubscription
Making tests work
Making tests work.
Solution was to delete all class files.
Why is there no build/clean?
Return null on getSubscription() when previously unsubscribed to match
initial contract
Operation Sample with Observable v2
ObserveOn fix for observing the same source on the same scheduler by two different observers.
Modified Subscription tests.
Modified Subscription tests.
Modified Subscription tests.