This would prevent possible loss of settings if Supersonic crashes or doesn't exit normally. (Resolving #275)
Completion criteria:
Config backend periodically saves the settings to the backing file while app is running (every 2 min?)
This only occurs if there has been a change in config. (Since the config is just a big struct with no pointers, this should be a simple equality check)
2a. Before saving the config file while the app is running, duplicate the config struct
2b. Next settings-save task compares the duplicated config struct to the "live" one
2c. If no change, nothing is done. Otherwise trigger the file-write+duplicate struct logic
This would prevent possible loss of settings if Supersonic crashes or doesn't exit normally. (Resolving #275)
Completion criteria: