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.
nit: missing period. [Comments are sentences](http://nedbatchelder.com/blog/201401/comments_should_be_sentences.html). I'd also fold the `@return` part into this since having both is redundant.