Discovery: Update ZenDiscovery fields via the cluster service update task.

On join, update the latestDiscoNodes, master flag and fault detection via a cluster state update task.

This should prevent rare concurrency issues, where during a join the cluster state master node can't be seen from the join thread.
I think the above test effectively has the same test as below, the currentState will by definition need to be updated to reflect the fact that the joining node will get the published state with it "in it" and the master node set. I think that we can remove the below check, yet still have the mentioned comment above, and mention that the master might get switched on us *or* that we haven't completed a full circle and we will retry again