Improve Settings behavior to match Windows .Net more closely

This commit addresses Xamarin bug #15818
* Implement Upgrade to allow Upgrading of settings
* Make SettingsPropertyValue serialization work for complex objects
* Make Save and Update throw in unimplemented configurations
* Changed Reload to clear PropertyValues so they are reloaded
  and fire PropertyChanged event for all Properties
* Modified Reset to do what Reload used to do.
* Added a backup Type loading for custom SettingsProviders

Change-Id: I40c193338fffa53593f7b1f9091b95155f0341c2