### Description

It should be enough to have ShardId + nodeId key in `routingToDataPath` to find the necessary data path. 
Changing the key would allow us to minimize the size of ClusterInfo size and find the data path when shard changes its status.

`ClusterInfo` might be sent over the wire when cluster allocation explain is executed with `includeDiskInfo=true`.
ShardRouting -> ShardId + nodeId conversion is trivial. The oposit would require additional information that could be faked.

Current key is also used in here:
https://github.com/elastic/elasticsearch/blob/9ebbe1c62bf0157d332f20f392544a1921a710df/server/src/main/java/org/elasticsearch/cluster/ClusterInfo.java#L149-L154
where it produces a string with ShardRouting#shortSummary that is excessive and might be simplified to ShardId + nodeId as well
server/src/test/java/org/elasticsearch/cluster/routing/allocation/decider/DiskThresholdDeciderUnitTests.java
assertEquals(0L, getExpectedShardSize(test_3, 0L, allocation));
        ShardRouting other_0 = ShardRouting.newUnassigned(
            new ShardId("other", "5678", 0),
            randomBoolean(),
            PeerRecoverySource.INSTANCE,
            new UnassignedInfo(UnassignedInfo.Reason.INDEX_CREATED, "foo")
        );
        other_0 = ShardRoutingHelper.initialize(other_0, "node2");
        other_0 = ShardRoutingHelper.moveToStarted(other_0);
        other_0 = ShardRoutingHelper.relocate(other_0, "node1");
        node = RoutingNodesHelper.routingNode(
            "node1",
            new DiscoveryNode("node1", buildNewFakeTransportAddress(), emptyMap(), emptySet(), Version.CURRENT),
            test_0,
            test_1.getTargetRelocatingShard(),
            test_2,
            other_0.getTargetRelocatingShard()
        );
        if (other_0.primary()) {
            assertEquals(10100L, sizeOfUnaccountedShards(allocation, node, false, "/dev/null"));
            assertEquals(10090L, sizeOfUnaccountedShards(allocation, node, true, "/dev/null"));
        } else {
            assertEquals(100L, sizeOfUnaccountedShards(allocation, node, false, "/dev/null"));
            assertEquals(90L, sizeOfUnaccountedShards(allocation, node, true, "/dev/null"));
        }
    }
    public void testTakesIntoAccountExpectedSizeForInitializingSearchableSnapshots() {
        String mainIndexName = "test";
        Index index = new Index(mainIndexName, "1234");
        String anotherIndexName = "another_index";