[Tests] Add ClusterDiscoveryConfiguration

A utility class that simplifies testing with Unicast based discovery (and allows for randomly choose between mutilcast and unicast based pings)

Note: this is against the improve_zen branch
I think we can still run into conflicts between tests here? `RandomizedTest.randomInt(1000)` can be the same between tests and then we have a port conflict.