Address comments -- this commit will be squashed.

Moved instantiation of array holding replicators to init.
Synchronized access to the array to make it thread-safe.

Here is the proposed new commit message:

Updates the example app to use CDTReplicators properly.

This commit updates the example app to show best-practices
around using CDTReplicators. CDTReplicators must be retained
in order for their replciation to complete. In this example,
they are held in an array. The CDTTodoReplicator class
becomes the delegate for each of the CDTReplicator objects it
creates. It reports on the status of the replication via
the callbacks and releases the CDTReplicator objects when they
either 'complete' or 'error' (in both cases, the CDTReplicator
has stopped operations).

The polling block has been removed. Previously, this polling
block was keeping the strong reference to the CDTReplicator,
but is no longer needed and also not encouraged.

The CDTTodoReplicator now uses the new CDTPush/PullReplication
configuration and the CDTReplicatorFactor -oneWay:error method
to build CDTReplicator objects, as the CDTReplicatorFactory
-onewaySourceDatastore:targetURI and
-onewaySourceURI:targetDatastore are deprecated.

Additionally, the CDTAppDelegate now keeps a persistent
CDTTodoReplicator object, which the CDTViewController uses to
fire off synchronization. A long-lived object that manages
and maintains individual CDTReplicator objects is necessary.

Adds a description method to CDTReplicator so it is more
informative in log messages.