more settings cleanup

This is more of the settings cleanup work I initially presented in #2190. It adds two new interfaces:
* ISettingsHandler has methods that are called when settings are loaded/saved and allow other classes to react to those events (e.g. CRssManager can load RssFeeds.xml when guisettings.xml has been loaded). Classes that implement ISettingsHandler in this PR are CPlayerCoreFactory, CRssManager, CUPnPSettings and CMediaSourceSettings.
* ISubSettings has methods to load and save settings into guisettings.xml allowing the code to be split up into more logical groups. Classes that implement ISubSettings in this PR are CSkinSettings, CViewSettings and CMediaSettings.

All the newly introduced classes each contain a set of methods that logically belong together and IMO should get their own class to be easier accessible and didn't really belong into CSettings in the first place.

There are more settings that IMO can and should be moved into seperate classes like all the display/GUI calibration, resolution information, profile access etc and I'll start working on those once this has gotten the green light.