User settings implementation

The purpose of this patch is to gather all settings in a single place, easy to override.

Some settings have already been moved, but it can still being some to move.
The idea is to add future settings here.

Comments are welcome, I'm really open to suggestions before merge.
In particular, I'm not sure if we should keep SystemSettingsProvider and UserSettingsProvider splitted, or merge them in a single class SettingsProvider.