Netflix/RxJava — pull request #793 by benjchristensen (2014-01-31 06:50:05+00:00)
Title: Observer + Subscriber

As per discussion in https://github.com/Netflix/RxJava/issues/792 the `abstract class Observer` has been returned to `interface Observer` and there is now `abstract class Subscriber implements Observer, Subscription` to fill that role.

Signatures are now:

```java
// Observable.create
public final static Observable create(OnSubscribe f)

// Observable.OnSubscribe typed function interface
public static interface OnSubscribe extends Action1>

// Observable.subscribe
public final Subscription subscribe(Subscriber subscriber)
public final Subscription subscribe(Observer observer)

// lift function
public Observable lift(final Func1, Subscriber> bind)

// Observer
public interface Observer {
public abstract void onNext(T t);
public abstract void onError(Throwable e);
public abstract void onCompleted();
}

// Subscriber
public abstract class Subscriber implements Observer, Subscription {
public final void add(Subscription s)
public final void unsubscribe()
public final boolean isUnsubscribed()
}

// Subject
public abstract class Subject extends Observable implements Observer
```