Discovery: If not enough possible masters are found, but there are masters to ping then these nodes should be resolved

After the findMaster() call we try to connect to the node and if it isn't the master we start looking for a new master via pinging again.

Note this PR is for the improve_zen branch.
having a numUnicastHosts + unicastDiscovery params is a bit confusing. Maybe have a couple of overload like startClusterWithUnicastDiscovery & startClusterWithMulticastDiscovery and have startCluster randomly call them?