Covariant Support with super/extends and OnSubscribeFunc

Merging and adding to work by @jmhofer in https://github.com/Netflix/RxJava/pull/331

In particular this adds the following change to the previous pull request:

```java
public static <T> Observable<T> create(Func1<? super Observer<? super T>, ? extends Subscription> func)
```

to

```java
public static <T> Observable<T> create(OnSubscribeFunc<T> func)
```