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.
This is exactly what I don't like of this solution: if `lifecycle` is an hot `Observable` you need to be careful in order to avoid to skip the correct "activating" event or you may end up unsubscribing at the incorrect time. Let's say the `Observable` you want to bind is subscribed in a callback (eg: `ServiceConnection.onServiceConnected()`), but it could take some time and you don't know which will be exactly the current lifecycle event: don't you think can be dangerous to guess which event should unsubscribe your `Observable`? I would prefer to see exposed only the method allowing to explicitly define the unsubscribing trigger, don't you?