function Scope(storage) {
        this.storage = storage;
        storage.on("changed", this.load.bind(this));
        this.data = {};
        this._dirty = false;
        this._layers = [];
        this._layerMap = {};
        this._exclusions = [];
    }
A `Scope` is a data container that is tied to a `Storage`.

Additionally, `Scope`s support "layers" which are additional levels of preferences
that are stored within a single preferences file.

@constructor
@param {Storage} storage Storage object from which prefs are loaded/saved