Add a ‘sources’ and ‘excludeSources’ options to Config::get

If the option is supplied, we will only retrieve values from the
specified sources.
Don’t return schema defaults when sources are specified in Config::get
Use ‘source’ option rather than internal state in Config spec
Allow null keyPath with options argument in ::get
Use a schema in all specs for Config::observeUserConfig

Before, values loaded from the config file were set in a
way that allowed any key to be set in the root object.
Now, these values are set in a way that's similar to how
::set works.