Abstract settings
This MR is a split from !139 (merged).
The behaviour keeps the same using the settings class, but depending on the backend implementation some settings will be based on gsettings and others will be hardcoded (not used).
Right now only the standard settings backend is implemented:
settings-user
.