Netflix/RxJava — pull request #860 by abersnaze (2014-02-12 10:04:54+00:00)
Title: Fixing the generics for merge and lift

I've tracked down to two problems

The first is that lift wasn't quite right. I changed the lift argument from `Operator` to `Operator`. Unfortunately Java won't let us hide that away in the `Operator` class so we have to redeclare that everywhere in the debug hooks but it's still better than the alternative of having to use the full `Func1, ? super Subscriber>` everywhere.

The second problem was in the return type of merge `Observable`. Because of operators like `merge(Observable t1, Observable t2)` the only thing that can be said for the return type is that it is also `Observable` but at the moment it is returning `Observable`.

This pull request changes all of them and leads to some silly return values like
```
Observable a, b;
Observable x = merge(a, b);
```