Fix replicator ID uniqueness:

- Source and Destination are inputs to the hash
- Filter and Query string are inputs to the hash for pull
  replications, if set

This implementation of replicator IDs is closer in spirit to the CDTDatastore one. Note that we don't need to include the 'push' flag as the input to the hash because source and destination are given, with their own keys.

As a side note, does push not have a filter?