Non-blocking SettingsManager
The SettingsManager interface is inconvenient to use because it needs to be called on the DB thread. Make the interface non-blocking by loading settings at startup and writing them back to the DB in the background when they're updated.