etcdserver: refactor cluster and clusterStore

Integrate clusterStore into cluster, and let cluster become the source of
cluster info.
etcdserver: MemberFromName -> MemberByName
etcdserver: Member.Pick -> Member.PickPeerURL
etcdserver: generate id when new cluster
etcdserver: use path.Join for member key in cluster
etcdserver: remove NewClusterFromMemberInfos
etcdserver: rebase on master and code clean
main: add genClusterString func and its test
etcdserver: panic when >1 members have the given name in MemberByName
etcdserver: Cluster.IsIDremoved -> Cluster.IsIDRemoved
Merge pull request #1361 from unihorn/182

etcdserver: refactor cluster and clusterStore