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

:warning: WIP :warning:

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.
I'm not sure. The only time we want to set config values without a source is presumably when the source is implied to be the user settings. I'm not sure I understand the usage of `source` well enough to think clearly about this. Maybe we should discuss it one more time. Think through how `source` is currently used and could be used in the future.