feat(*): initial commit
fix(CONTRIBUTING.md): Fix title case
Merge pull request #1 from bcwaldon/fix-case

fix(CONTRIBUTING.md): Fix title case
chore(contributing): clean up CONTRIBUTING.md and split out DCO
Merge pull request #2 from jonboulle/master

Clean up CONTRIBUTING.md and other bits of template-project
Added the -peer-heartbeat-interval option
fix(config.go)

return a valid URL struct from sanitizeURL()
pass the URL struct above to sanitizeBindAddr()

Since url.Parse() will return an error when parsing an already-parsed
ipv6 url string, (e.g. [http://[fe80::6203:8ff:fe9e:ace%25eth0]:7001),
so I just return the valid URL struct from sanitizeURL() and send it to
sanitizeBindAddr(), then there is no need to parse it again in sanitizeBindAddr().

Besides, for IPV6 url, the percent sign should be escaped, see:
http://en.wikipedia.org/wiki/IPv6_address#Link-local_addresses_and_zone_indices
Merge pull request #793 from binocarlos/patch-1

Added the -peer-heartbeat-interval option
Merge pull request #791 from yifan-gu/ipv6_zone_fix

Ipv6 zone fix
hack(server): notify removed peers when they try to become candidates
A peer might be removed during a network partiton. When it comes back it
will not have received any of the log entries that would have notified
it of its removal and go onto propose a vote. This will disrupt the
cluster and the cluster should give the machine feedback that it is no
longer a member.

The term of a denied vote is MaxUint64. The notification of the removal
is a raft event. These two modification are quick heck.

In reaction to this notification the machine should shutdown. In this
case the shutdown just moves it towards becoming a standby server.
tests(remove_node): add TestRemovePausedNode
Merge pull request #19 from unihorn/92

tests(remove_node): add TestRemovePausedNode
fix(peer_server): set store and registry when setting raft server

New raft server needs new store and registry.
Merge pull request #803 from unihorn/94

fix(peer_server): set store and registry when setting raft server
Merge pull request #799 from xiangli-cmu/deny_unknow_peer

hack(server): notify removed peers when they try to become candidates
fix(store): synchronize access to CurrentIndex
Merge pull request #804 from xiangli-cmu/fix_curr_index_race

fix(store): synchronize access to CurrentIndex
fix(test/remove_node_test.go) fix a deadlock in the test

The go-etcd client waits for the response from the paused node. And the test waits for the reponse to continue.
Actually we do not even need that small test, since we will check the machine status afterwards.
Merge pull request #805 from xiangli-cmu/fix_test

fix(test/remove_node_test.go) fix a deadlock in the test
doc(README): add note about 32bit systems - fixes 358