etcd: make cmd a protobuf type

Conflicts:
	etcd/v2_apply.go
	etcd/v2_store.go
raft: make State a protobuf type
server: serve /v2/admin on raftPubAddr
wal: make record a protobuf type
server: wait for entries to be committed in TestClusterConfigReload
server: rewrite keepSetting in TestMultiNodeKillOne

It avoids blocking http request.
server: not create new peer if exists
server: not set participant status for peer that points to itself
server: add TLSHandshakeTimeout for peer hub client
server: not add node that has been in the cluster
raft: prune unnecessary logging - fixes #15
wal: prune repeative logging
etcd: remove unnecessary StopProposalWaiters function
server: remove return value of func run
server: cleanup participant stop
etcd: we should trust people
etcd: cleanup locking in run
etcd: no more mutex
etcd: remove unused field seeds in participant struct
config: remove toml