33513 pull replication by document id

Do pull replication with a subset of document IDs.

The user configures clientFilterDocIds on the CDTPullReplication object; this is an array of document IDs.

Internally, the sets clientFilterCurrentSetDocIds (doc IDs for inclusion during pull, for which we already have at least one rev in the database), and clientFilterNewDocIds (doc IDs for inclusion during pull, which we don't yet have in the database) are used.

Lots of things are missing right now, especially an updated remoteCheckpointDocID method whose input to the hash function should the doc ID list.
It looks like this is called in the [completion block of a request handler in TDReplicator](https://github.com/cloudant/CDTDatastore/blob/master/Classes/common/touchdb/TDReplicator.m#L625), after we're got the current checkpoint doc from the remote and checked the value against the local version.

`flushAll` ends up calling `-pullRemoteRevision:ignoreMissingDocs:` which fires off requests async, so I think you are fine as for tying up the main thread.

However, I'm not sure you're guaranteed that these calls finish before you start the next stage of the replication.