Discovery: Give a unique id to each ping response 

During discovery a node gossips with other nodes to discover the current state of the cluster - what nodes are out there, what version they use and most importantly whether there is an active master out there.  During this ping process we may end up in a situation where old information is mixed with new. This is comment if a couple of master election happen in rapid succession. 

This PR adds a monotonically increasing id to each ping response. This makes it easy to always select the last ping from every node.
+1 this really cleans up code in several places