Add a public way of setting config values associated with a source

:warning: WIP :warning:

* [ ] Eliminate disposable returned from `Config::set`
* [ ] Associate all settings with a source regardless of whether or not they are scoped
* [ ] Add a `Config::unsetFromSource` public method to remove settings from a given source
* [ ] Add `sources` option to `Config::get`
* [ ] Add `excludeSources` option to `Config::get`
* [ ] Use actual user settings path as the user settings source
* [ ] Add `Config::unset` to remove a setting from the user-config source
* [ ] Add `Config::unsetFromSource` to remove all settings or one setting from a given source
* [ ] Deprecate `is/get/restoreDefault` methods and replace with `get` and `set` plus `source` options

Previously, the private method `::addScopedSettings` was used to associate config settings with a source other than the user's config file. It bypassed schema validation.

This is being driven out by changes made in atom/snippets#86; to fix deprecation warnings required calling private methods on Config.