Description
Currently when finding the best node to host the failed replicas, we respect the maxShardsPerNode property. This is not an ideal solution as it's a per collection property and we need a cluster wide property. Also using maxShardsPerNode can lead to unequal distribution of replicas across nodes.
We should just let users use the CLUSTERPROP API to set the max number of cores to be hosted on each node and use that value while picking the node the replica will be hosted on.