Add `Client_main.find_master'`

This patch adds `Client_main.find_master'`, which should be a more resilient master lookup algorithm.

It also reworks `Client_main.find_master` to use the new `find_master'`, but keep the behaviour of the original action regarding error handling.
Not necessarily.

Say you got a networked system, consisting of 5 target nodes. In some algorithm, you want to send some message (and receive an acknowledgement) to at least 3 of these nodes, concurrently. Then you use a `CountDownLatch` of size 3, spawn 5 threads which send the message & wait for an answer, and once the ack has been received, decrease the latch.

Finally the caller blocks on the latch (& some timeout, or whatever).

It's perfectly possible and OK if the latch is decremented even though it's 0 already when more-than-3 messages are sent/ack'ed.