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.
I've done some refactoring but I agree with @gadamc that the current structure of the code forces us to initialise the TDReplicator and then poke in various options after the init. I dreamt up the name of the new method "doSetClientFilterDocIds" but it probably needs to be something more meaningful.