Kubernetes servers are grouped by health, and dialed in order of healthy, unknown, then unhealthy, with random shuffling within each group for load distribution.
The grouping and shuffling is implemented generically in a separate iterator function `OrderByTargetHealthStatus()` for reuse and testability.
Changes:
- Added `healthcheck.OrderByTargetHealthStatus()` function with tests
Part of #58413
Co-authored-by: rosstimothy <39066650+rosstimothy@users.noreply.github.com>