* The `data` setter sets the backing data object to a new value, and
flips `dataReady` so that `ensureDataReady` and `load` don't read
stale data from disk. This can be used to clear existing data.
* The `beforeSave` hook is called from `_save`, as part of the deferred
task. This can be used to create intermediate directories containing
the file, or run other pre-save tasks that shouldn't be interrupted
by shutdown.
MozReview-Commit-ID: AzOx7u2Rali