Add `replay` and `multicast` variants to RxScala

This PR has some breaking changes:
* Change `def multicast[R >: T](subject: rx.lang.scala.Subject[R]): (() => Subscription, Observable[R])` to `def multicast[R >: T](subject: rx.lang.scala.Subject[R]): ConnectableObservable[R]`
* Change `def replay: (() => Subscription, Observable[T])` to `def replay: ConnectableObservable[T]`
* Remove `Observable.apply(Int)`

So it's better to merge it at the next major release.

#1152, #1153.

/cc @headinthebox @samuelgruetter