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.
We should break these up into individual lines. Otherwise the file history is a ugly and merges are even worse.