raft: fix log append; add tests
etcd: add /v2/admin/config endpoint
etcd: add /v2/admin/machines/ endpoint
raft: update lead for follower sm when receiving msgApp

Or follower may take `none` as its leader forever if it just launched
a failed election whose term is the same as the current leader.
raft: add msgDenial to deny removed nodes
server: add remove function
server: make removal go through run loop

It should not send to raft endpoint directly.
server: add add function
server: implement join and remove http endpoint
server: use /v2/admin/machines/ http endpoint to join
server: v2 propose sends error back
server: maintain cluster members in `nodes` var
server: use buffer for proposal channel
v2_client: read whole response body before close

Client have to read whole response bodies
if they want the advantage of reusing TCP connections.

https://code.google.com/p/go/source/detail?r=d4e1ec84876c0f5611ab86a03826da14b866efb2&name=release-branch.go1.1&path=/src/pkg/net/http/transport.go
heheh