Document IDs and document filenames can get out of sync

Currently each document has an `id` key on it which needs to be unique within a repository. This ID is used to determine the filename on disk of the document when it's serialised.

If somebody were to rename the file on disk, the key within would then not match up and cause issues further down the line. I'm keen to allow people to edit files directly without having to create/modify them through Flywheel so this needs to be tided up.

I'm thinking that when a document comes to be serialised it's `id` field is removed. When rehydrating a document the `id` is regenerated from it's filename.