Added LifecycleEvent enum

Can be used for all the major Activity and Fragment events.
Added OperatorSubscribeUntil and tests

The issue with takeUntil() is that it calls onComplete() in the parent; that
is not exactly the behavior we want, so this should take its place.
Added LifecycleObserver and tests

- Added bindUntilLifecycleEvent(), which automatically unsubscribes when a
  particular LifecycleEvent is emitted by a lifecycle.

- Added bindActivityLifecycle() and bindFragmentLifecycle(), which figure out
  when you want to bind a subscription until.