Allow non-modal ConfigDialog.

We need this for OS X, where some system APIs spawn dialogs
that won't get foregrounded or get the focus if the ConfigDialog
is modal.

To avoid a lot of ifdefs, the decision whether to spawn a modal
or non-modal config dialog is controlled by Settings::bModalConfigDialog.
This means the code is built for all platforms, and can even be enabled
on all platforms by manually fiddling with the config file/store.