UI|MessageDialog: Added InputDialog for querying text from user

Also, both MessageDialog and InputDialog can now be constructed
as local variables; they will reinitialize themselves automatically
in their destructors.
Fixed|UI: Widget improvements, ui::Data non-const access to items

Fixed issues in ChoiceWidget where the state of the button was not
updated in every situation (adding/removing/updating items).

DialogWidget sets a default action for Yes and No roles, too.

LineEditWidget also eats Shift modifier events when focused.
Client|libdeng2: Persistently store setting profiles

SettingsRegister can now optionally be configured to work in
persistent mode, where the profiles and their values are stored in
an Info file under /home/configs/.

The Renderer Settings dialog can now be used to manipulate the
appearance profiles.

Also, de::File now uses the as/is template methods.