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
Merge pull request #569 from Netflix/docs

javadoc improvements (groupJoin, groupByUntil, timestamp w/scheduler)
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.
Removed Opening and Closing historical artifacts.
Fixed scala compilation error.
remove package rx.lang.scala.util since all its contents were removed
remove import rx.lang.scala.util._
Merge pull request #1 from samuelgruetter/OpeningClosingRemovedSam

remove package rx.lang.scala.util since all its contents were removed
clarify documentation on cache()
Reimplement the 'SequenceEqual' operator using other operators
Fix the 'null' issue in the default equality
Update ObservableHttp.java

Removed pesty dangling </p>