Propagate TDReplicator error through CDTReplicator to User

Removed CDTReplicationErrorInfo
Changed CDTReplicatorDelegate to use NSError instead of CDTReplicationErrorInfo
Introduce CDTMutableDocumentRevision

Created a new object, CDTMutableDocumentRevision, a mutable subclass of CDTDocumentRevision. CDTMutableDocumentRevision should be used to
create and update documents with the immutable superclass CDTDocumentRevision to delete a document revison. Attachments are also now handled
with the CDTMutableDocumentRevision via the attachments dictionary, where attachments are keyed by their name. A document can be completely
deleted using the deleteDocumentById:error: method, which deletes all the leaf nodes of a revision tree.

The CDTDocumentBody has been depecated, use the body dictionary on CDTMutableDocumentRevision and CDTDocumentRevision classes
APIs which use CDTDocumentBody have been deperecated
Preivous atachment APIs have been deprecated

Copied and ported tests for the new api covering attachments and datastore CRUD.

Note: NullAttachmentWithGoodStream no longer checks for a file on disk, this is because of uncertain ordering per platform due to the use
of NSDictionary

3Port tests that were missed during the initial port