Settings export
Build on top of !2279 (merged). That's why it's in draft
Also, some commits have been cherry picked from !2249 (merged). We'll need to drop them and to implement the equalizer backup/restore properly inside the settings backup restore.
I advise to merge the MRs that way:
This MR rewrites the whole backup/restore feature. It'll make older backup incompatible, so the app warns the user to backup again.
Now, all the settings are put in the json file with a blacklist. It'll make it easier to add new settings without worrying if we have to put something in the backup/restore feature.
Also, the json export is now strongly typed, making it easier to add additional data to backup/restore. Such as the equalizer values from the DB.