Free a bunch of C-style strings before assigning newly copied strings.
One case was particularly buggy:
prefs.locale.use_system_language = copy_string(qPrintable(value));
Note that prefs.locale.use_system_language is a bool, which of course
always evaluates to true! Probably nobody noticed because a restart
is required when changing locale.
Moreover remove a few double-semicolons.