JSON-RPC: basic settings exposure

These commits (the first two are from #3453) expose the settings system to JSON-RPC. The available methods are
* Settings.GetSections
* Settings.GetCategories
* Settings.GetSettings
* Settings.GetSettingValue
* Settings.SetSettingValue
* Settings.ResetSettingValue

All are pretty straight-forward. I would also like to add support for registering for setting callbacks using notifications but that's not critical at all and can be done in a separate PR. I've decided to do JSON-RPC first because I know it better than python and because python addons can also use JSON-RPC.