[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
yes, true. Maybe each unicast based test should just stick with its own port range? Not sure how to solve this otherwise. Just want to prevent test failures caused by two nodes taking the same port.