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.state property to be equal to CDTReplicatorStatusStopped
if the replication was stopped via a call to CDTReplicator -stop. Otherwise, if
the replication stops on its own because it completes, the status is set to
CDTReplicatorStatusComplete.

Changes the CDTReplicator code to clarify the object's state,
progress (changesTotal and changesProcessed), and messages sent to delegates
during start, stop and updates to the replicator.

Adds tests in ReplicationAcceptance using a delegate to stop replication
immediately after starting.
Addresses comments in the PR.

This commit will be squashed before merging.