Fixing problematic behaviour when something is wrong in the config.

The problem can be reproduced by taking the following steps:
- insert a wrong parameter in the configuration (for instance, a non-existing dictionary file). This can be done by editing the ~/.config/plover/plover.cfg file or through the configuration dialog of plover.
- close Plover (if open)
- launch Plover from the command line (to see the error)

Plover doesn't launch, since it encounters a ValueError that's not processed.

I fixed this by catching such errors (renamed in InvalidConfigurationError), and offering the user a chance to fix his mistake through the configuration dialog. If, when the user submits his configuration again (by clicking "Save"), the configuration still is incorrect, the user will be prompted and offered to correct his configuration again.

Since this could become a loop, clicking "Cancel" on the configuration dialog will result in Plover closing without further dialogs.

This is made possible by the previous commits, allowing the configuration dialog to be modal.

This fix is improved by validating the configuration in the ConfigurationDialog class, using a previous commit that separates verification and usage of the configuration in the StenoEngine class.

If there's an error in the submitted configuration, the user will be prompted with an error message, the configuration file won't be written and the user will get a change to change the configuration throught the dialog.