FB 33239 add mutable document revision

See https://gist.github.com/mikerhodes/c022e9e44d83c2e4747e for mini spec (objective-c version)
setAttachments is used in internal situations where returning a revision makes no sense, like when adding attachments through replication. Note that the behaviour is exactly the same as under the old attachment handling routine. I'm open to another name but I don't think "setAttachments" on an "attachmentManager" implies much about revisions.

Having to re-fetch the revision is a bit of a pain but because DocumentRevisions are immutable you can't just bolt the attachments on to them after. And you can't swap round the createDocument and setAttachments because then setAttachments won't have a sequence number to pin the attachments against.