34404 create rev from json

Allow creating CDTDocumentRevision objects for use with remote data sources

Create factory method which takes an NSDictionary and document URL.
- Reject dictionary if it contains any _prefixed values which are not couchdb properties
- Create any attachments as CDTRemoteAttachments defined in _attachments

The bugs likely to occur from this are using the API with NSDictionary objects containing incomplete data.

At the moment this class is named for the source of the _document_ this attachment comes from (it's from a remote database) rather than the source of the _attachment_ itself (HTTP, data, file on the file system).

This shouldn't be so remote-document specific, make it more generic so it's usable outside this context.

```objc
+(CDTRemoteAttachment *)createAttachmentForName:(NSString *)name
                        type:(NSString*)type
                        size:(NSInteger)size
                      revpos:(NSInteger)revpos
                    sequence:(SequenceNumber)sequence
                                     urlForData:(NSURL*)dataUrl
                                          error:(NSError * __autoreleasing *) error
```

Rename this CDTHTTPAttachment. There's an issue with saved/unsaved too, you should address that -- perhaps this should just be CDTSavedHTTPAttachment.

You should create a second subclass for the case where the document has the data within it, rather than overloading a single object (though this confusion comes from the whole source issue, outlined in the first sentence, where the object's task isn't scoped the same as the other attachment classes).