Previously, a single partition requiring recovery balance would block all types of load-balance. This commit allows all downward state transitions (load balance) to happen even when recovery balance is happening in the same cycle.
As for non-downward state transitions load-balance, a parameter, ErrorOrRecoveryPartitionThresholdForLoadBalance, was added to ClusterConfig. If the number of partitions requiring recovery is lower than the threshold, non-downward load-balance will take place in the same cycle as recovery balance; otherwise, non-downward load-balance will not take place in the same cycle.