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
Merge pull request #43 from cloudant/API_rewrite

Introduce CDTMutableDocumentRevision
Makes CDTAbstract/Pull/PushReplication conform to NSCopying.

This ensures that the replication configuration cannot change after
the instantiation of the CDTReplicator object, which could cause some
bugs.