*: generate clusterid

Generate clusterID based on hash(sorted(MemberIDs), discoveryURL)
@barakmich @jonboulle 
for the discovery case, we:

1. discovery for all the members 
2. set up with cluster with the discovered members
3. generate the clusterID with memberIDs and discoveryURL

So all the members will agree on the same clusterID.

Of course, we could only use the discoveryURL to generate in this case. But I think also hashing the discovered memberIDs might help to detect potential problem with discovery service (different members in different views?).