RxScala: Add more operators to match RxJava

including `window(span, shift, unit, count, scheduler)`, `cache(Int)`, `groupBy[K, V](keySelector: T => K, valueSelector: T => V)`, `compose`, `onBackpressureBuffer`, `onBackpressureDrop`, `collect` and `using`.

/cc @headinthebox, @samuelgruetter