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
Changes the CDTReplicator -start signature.

-(void)start becomes -(BOOL)start:NSError**

Errors created by TDReplicator objects are propaged from
TDReplicatorManager. They are reported to the Log (via Warn),
but new CDT-level errors are reported to developers using the
CDT API.
Addresses comments in the PR.

Adds synchornization to -startWithError for thread safety.

Adds synchronization to -stop for thread safety.

Mmakes -start a __deprecated method.

Updates tests in ReplicationAcceptance to use the new
-startWithError method.

This commit will be squashed.
Adds tests to ensure that the correct type of TDReplicator is created
by a TDReplicationManager when using the NSDictionary object produced
by the CDT*Replication objects.