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.
I don't understand why this is an mvar instead of a `int ref` ?
I think we could drop the Lwt_mutex.t below here too