Add scoped settings to config

WIP: Starting this super early if folks want to give feedback.

This moves the scoped properties from syntax into config and merges them with the 'global' config. 

### TODO

* [x] Add optional selectors to `Config::get/set`
* [x] Forward deprecated writes to `atom.syntax` to `atom.config`
* [x] Forward deprecated reads on `atom.syntax` to `atom.config`
* [x] Read from `atom.config` instead of `atom.syntax`
* [x] Register scoped properties with `atom.config` instead of `atom.syntax` when loading packages.
* [x] Allow scoped settings to be observed

Refs https://github.com/atom/atom/issues/3674
This is funny. `scopedProperties` was deprecated for settings view. Instead of fixing it, settings view worked around the deprecation by accessing the store itself. So we have to support this for now.