settings: fix handling of settings unloading

These commits fix the proper handling of the settings unloading event with a new OnSettingsUnloaded() callback in the ISettingsHandler interface which mostly (but not completely) replaces the OnSettingsCleared() callback. The most prominent use case for OnSettingsUnloaded() is switching profiles which is currently broken due to completely unloading and uninitializing all profiles when performing a profile switch.

Furthermore the last commit fixes the "-fs" app parameter switch which is currently overwritten by a second call to CAdvancedSettings::Initialize() after having already parsed the app parameters.