wal: make record a protobuf type
Merge pull request #23 from etcd-team/pb_record

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
Merge pull request #25 from etcd-team/fix-bug

Fix bug
server: deny join if cluster is full

The implementation cannot ensure that the cluster does not exceed the
expected size. If multiple add requests come at the same time, they may
all pass the check and join the cluster.
server: remove peer when actual size exceeds expected one

It removes peer slowly.

The case that the size is decreased to be lower than the expected one may
happen, but removing peer slowly could make it happen in low probability.