Adds TDInternalErrorDomain and error code for when local
database is deleted during replication.

TDReplicatorManager sets TDReplicator's error property
with appropriate NSError when local database is deleted.
Adds error property in CDTReplicator for error information retrieval.

The error is translated from TD* level error type to CDT* error
here (the location for this transformation may change
in the future). If the TD* level error is not specifically
handled, the TD* error is used. As of this commit, only
TDReplicatorManagerErrorLocalDatabaseDeleted is transformed to
CDTReplicatorErrorLocalDatabaseDeleted.

Fixes small bug in CDTReplicatorErrors enum where the value for
CDTReplicatorErrorTDReplicatorWrongType was incorrecly set to 2.
Fixes bug setting state in CDTReplicator -stop.

The state was incorrectly set to the wrong value in a previous commit.

Adds test for CDTReplicatorState.
Adds the state of the CDTReplicator to the logging message in -replicatorStopped.

Removes an incorrect Warning found in -replicatorStopped.
Refactors common code in CDTReplicator.

Moves common code that tracks progress of replication and makes
calls to the delegate into a single method instead of repeating
that code in -replicatorStopped and -replicatorProcessChanged.
Adds tests to ReplicationAcceptance project for CDTReplicatorState when
local database is deleted during replication.
Ensures that the delegate is called appropriately if CDTReplicator -stop is called.
Strongly retain self during TD_Replicator notification callbacks

It appears that under certain usages, the CDTReplicator object can
become deallocated during the callbacks. I seek to prevent that by
using a strong reference during the callbacks, so deallocation is
help up until the end of the callback method.
Adds functionality to try to cancel a replication before it starts.

A user of this object calls -cancelIfNotStarted:(TDReplicator *)

This is implemented with two internal NSMutableSet objects that
track if the queued replicator block is executed and if a caller tries to
stop that execution. Reads/Writes to both sets are wrapped in
@synchronized(self) blocks in order to guarantee success or failure.
Improves CDTReplicator -stop and -startWithError.

Modifies -stop and -startWithError to ensure proper state when
a caller attempts to stop a replicator before the replication thread
executes or if -stop is called before -startWithError. This makes
this class more thread-safe and covers the edge-case where a
replication thread blocks for some reason and the user wishes to
prevent the replication from starting.

The -stop method was modified to return YES/NO to indicate that
it was successful/unsuccessful in stopping the replication from
starting. It is now guaranteed to be successful or unsuccessful,
rather than its previously ambiguous and misleading effectiveness.
This -stop method uses TDReplicatorManager -cancelIfNotStarted.

Addtionally, modifications to CDTRepiclator.state are wrapped in
@synchronized blocks in order to guarantee the object's state
during -stop and the NSNotification callbacks from TDReplicator.
Merge pull request #63 from cloudant/32783-test-for-replication-stop-when-local-database-is-deleted

32783 - report error when local database is deleted during replication