Added LifecycleObservable binds

This is the first half of the puzzle that is #12. It provides two main facilities:

- `LifecycleObservable.bindUntilLifecycleEvent()` lets you specify an exact point in a lifecycle to unsubscribe at.

- `LifecycleObservable.bindActivityLifecycle()` and `bindFragmentLifecycle()` which make a best effort guess at when you want a subscription to end, based on the lifecycle state.

Implementation detail: `OperatorSubscribeUntil` acts like `takeUntil()`, except that it unsubscribes instead of calling `onComplete()` when the conditional `Observable` emits an item.

If this works then we can later figure out how to create these `Observable<LifecycleEvent>` streams.
Might want to consider passing the parent instead of child to new Subscriber<R>(child) {..} That way it is consistent with onCompleted and onNext where the parent is unsubscribed.

No one will unsubscribe the Subscriber passed to unsafeSubscribe(..) but might make it clearer to the reader?