Changes the CDTReplicator.state property to be equal to CDTReplicatorSta...


If the replication was stopped via a call to CDTReplicator -stop, the status should be 'Stopped'. 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.
Okay - I replaced it with a switch statement, which makes it more clear. 

The `CDTReplicator -start` could be rewritten similarly with a switch statement (similar to how the Java code looks). However, I believe that in order to do so, we'd have set `self.state` directly inside `-start` instead of waiting to update `self.state` when the TDReplicator actually starts. The way it works now, and the reason for the "started" private variable in PR #47, is the TDReplicator's job sends out a notification once started, which is picked up by CDTReplicator and then `self.state` is set to `CDTReplicatorStatusStarted`. So, there's a period of time after `CDTReplicator -start` is called and when self.state is set to `CDTReplicatorStatusStarted`. If we wanted a similar switch statement in `-start`, we could just set self.state = `CDTReplicatorStatusStarted` immediately and notify the delegate within `-start`. We'd only by lying about the state of replication for a very brief period of time until the TDReplicator starts running on the queue. :)