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.

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.