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: add a doc.go file

Explain the package from a high level.
raft: add useful comments

These comments were things I learned about the units, use case or
meaning of various fields and functions in the raft package.
raft: more descriptive panic info
raft: test node block proposal
raft: test contain updates
raft: add isStateEqual test
raft: better comment and naming
Merge pull request #1066 from philips/add-raft-doc

add-raft-doc
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.