add upgrade method to ConfigParser

Adds a simple upgrade method to ConfigParser. Reads new default config file and adds any missing settings. Using this function prevents crashes when adding a panel to a `Settings` instance where a new key has been added and that key is not present in the user's existing config file.

Can work around #2287 in some cases.
A better name might be update_defaults rather than upgrade. And if I may, a simpler name for default_config_file could just be filename.

Also, if you want, this could be turned into a general update method with a parameter called e.g. overwrite, which if True, updates all the values from the new file, otherwise, it just updates the defaults.