Modal Support

Turns out the only way to have a fully awaitable dialog is to do some
fairly nasty stuff with the android message pump.  I didn't even look at
iOS.

Rather than chase that I've implemented a class that encapsulates a
pattern for using dialogs that is fairly clean.