Regularly check whether replication runloop should exit

Using [NSDate distantFuture] was meaning that the runloop blocked,
meaning that _stopRunLoop was never checked.
Adds support for filtered push replication.

This commit adds support for filtered push replication via the CDTPushReplication
interface. A developer supplies the definition of the filter via a CDTFilterBlock,
and the query parameters via a NSDictionary.

* Adds CDTPushReplication -filter and -filterParams.
* Modifies CDTReplicationFactory -oneWay:error: to wrap the CDTFilterBlock
inside a TD_FilterBlock and into the source TD_Database so that TDPusher finds
the filter during replication.
* Adds tests in Tests project DatastoreCrud.m and CDTReplicationTests.m.
* Adds tests in ReplicationAcceptance project.
* Improves some documentation in CDTPullReplication and matches that in CDTPushReplication.
Adds CDTReplicatorFactory -dealloc method, which ensures that the
TDReplicatorManager replication thread is stopped.