Take 3

Removed unneeded variance and replaced a few type variables in result types that don't matter with Any.

Used `@uncheckedVariance` in one place that I think is safe and correspond better with Java signature. which also just takes a `T`.
```
def publish[R](selector: Observable[T] => Observable[R], initialValue: T @uncheckedVariance): Observable[R]
ublic final <R> Observable<R> publish(Func1<? super Observable<T>, ? extends Observable<R>> selector, final T initialValue) {
```