raft: set none to be 0
etcdserver: fix testServer
raft: use const firstId to track ids
raft: set From of local message to be local id
raft: use [1,n] as address list for raft state machines
raft: use raft helper function in testing
raft: remove vote with default value
raft: more descriptive panic info
raft: test node block proposal
raft: test contain updates
raft: add isStateEqual test
raft: better comment and naming
raft: forceGoSched -> forceGosched
raft: move defer after run
raft: set propc, readyc to be nil before run loop
etcdserver: remove useless sleep

etcdserver.Do will block until there exists leader
proxy: rewrite stdlib ReverseProxy

The ReverseProxy code from the standard library doesn't actually
give us the control that we want. Pull it down and rip out what
we don't need, adding tests in the process.

All available endpoints are attempted when proxying a request. If a
proxied request fails, the upstream will be considered unavailable
for 5s and no more requests will be proxied to it. After the 5s is
up, the endpoint will be put back to rotation.
Merge pull request #1055 from bcwaldon/proxy-monster

proxy mode, pt II
test: test with race by default
raft: remove unused field