### Elasticsearch Version

v8.10

RRF produces inconsistent ranking between primary and replica shards when documents from different queries have the same rank.
For example, if: 
doc1 has a rank 1 in the hits set for Query1 (and is not present in the hit set for Query 2)
doc2 has a rank 1 in the hits set for Query2 (and is not present in the hit set for Query 1)

documents doc1 and doc2 could be ranked differently : [doc1, doc2] and [doc2, doc1] depending which shard search will hit.

### Steps to Reproduce

To be provided

### A solution

This happens because for tie breaking, we use internal doc IDs, which is dependant on a shard. Instead we can use an original query ID or order to ensure consistent ordering.

x-pack/plugin/rank-rrf/src/test/java/org/elasticsearch/xpack/rank/rrf/RRFRankContextTests.java
private void assertRDEquals(RRFRankDoc rd0, RRFRankDoc rd1) {
        assertEquals(rd0.doc, rd1.doc);
        assertEquals(rd0.score, rd1.score, 0.01);
        assertEquals(rd0.shardIndex, rd1.shardIndex);
        assertEquals(rd0.rank, rd1.rank);
        assertEquals(rd0.positions.length, rd1.positions.length);
        assertEquals(rd0.scores.length, rd1.scores.length);
        assertEquals(rd1.positions.length, rd1.scores.length);
        for (int i = 0; i < rd0.positions.length; ++i) {
            assertEquals(rd0.positions[i], rd1.positions[i]);
            assertEquals(rd0.scores[i], rd1.scores[i], 0.01);
        }
    }
    public void testShardCombine() {
        RRFRankShardContext context = new RRFRankShardContext(null, 0, 10, 1);
        List<TopDocs> topDocs = List.of(