Add bidirectional replication E2E tests with mutual offer discovery
Two tests validating the full bidirectional loop:
1. Two nodes sync each other's data and serve it via all sync/repo endpoints
(getRepo, getRepoStatus, listRepos, getRecord, listRecords, describeRepo)
2. Mutual offers create P2P replication policies with correct parameter merging
(max minCopies, min intervalSec, max priority)
Uses enhanced mock PDS with configurable records per DID/collection.