Compose/Transform Covariance

Failing test while exploring generic variance for https://github.com/Netflix/RxJava/issues/1416

Code like this makes these generics work:

```java
    @Test
    public void testCovarianceOfCompose() {
        Observable<HorrorMovie> movie = Observable.<HorrorMovie> from(new HorrorMovie());
        movie.compose(new Transformer<Movie, Movie>() {

            @Override
            public Observable<? extends Movie> call(Observable<? super Movie> t1) {
                return Observable.from(new Movie());
            }
            
        });
    }
    
    @Test
    public void testCovarianceOfCompose2() {
        Observable<Movie> movie = Observable.<Movie> from(new HorrorMovie());
        movie.compose(new Transformer<Movie, Movie>() {

            @Override
            public Observable<? extends Movie> call(Observable<? super Movie> t1) {
                return Observable.from(new HorrorMovie());
            }
            
        });
    }
```

however, I couldn't get the `compose`/`Transformer` types to correctly work.

Anyone else want to help figure out generics for this?

See https://github.com/Netflix/RxJava/blob/master/rxjava-core/src/main/java/rx/Observable.java#L195