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.
This tests that `getSubscriber` is throwing an exception if there is no references to the listener (cleared after completion of the observable).