Reactive Dialog

This PR adds a DialogFragment returning an Observable<T>.

This allows for composition of actions over UI interactions (asking a user for data, confirmation etc..)

This is the first PR in a series of backport from work we did.
To help with comunication and my refactoring I'll issue the PR one by one as they get merged in or declined.
If all you are talking about is the return value, just make that the direct javadoc rather than leaving the body empty. Also don't capitalize "User Interaction".

```java
/** Returns an observable for the dialog result. */
```