function FileStorage(path, createIfMissing, recreateIfInvalid) {
        this.path = path;
        this.createIfMissing = createIfMissing;
        this.recreateIfInvalid = recreateIfInvalid;
        this._lineEndings = FileUtils.getPlatformLineEndings();
    }
Loads/saves preferences from a JSON file on disk.

@constructor
@param {string}  path        Path to the preferences file
@param {boolean} createIfMissing True if the file should be created if it doesn't exist.
                             If this is not true, an exception will be thrown if the
                             file does not exist.
@param {boolean} recreateIfInvalid True if the file needs to be recreated if it is invalid.
                             Invalid- Either unreadable or unparseable.
                             The invalid copy will be sent to trash in case the user wants to refer to it.