FB 33239 add mutable document revision

See https://gist.github.com/mikerhodes/c022e9e44d83c2e4747e for mini spec (objective-c version)
This makes it feel like the `setAttachments` call creates a new revision. Why doesn't `setAttachments` actually set the attachments on the revision, as it looks like it does from the call? It does so only in the database, which makes it's name now misleading.