raft: commitIndex=min(leaderCommit, index of last new entry)
raft: add removed

The usage of removed:
1. tell removed node about its removal explicitly using msgDenied
2. prevent removed node disrupt cluster progress by launching leader election

It is set when apply node removal, or receive msgDenied.
raft: refine comment for doc and removed list tests
etcdserver: fix test due to rebase
Merge pull request #1151 from unihorn/138

raft: add removed
raft: msg.Denied -> msg.Reject

Change the field name because it has msgDenied already.
Merge pull request #1224 from unihorn/149

raft: msg.Denied -> msg.Reject
*: expose etcd-index in watch requests

This adds a StartIndex field to the Watcher interface, which represents
the Etcd-Index at which the Watcher is created.

Also refactors the HTTP tests to use a table for most handleWatch tests
raft: do not decrease nextIndex and send entries for stale reply
raft: add comment to decrTo
Merge pull request #1207 from coreos/check_stale_resp

raft: do not decrease nextIndex and send entries for stale reply
raft: add test for maybeappend change
Merge pull request #1203 from coreos/fix_raft

raft: commitIndex=min(leaderCommit, index of last new entry)
Merge pull request #1187 from jonboulle/1187_watches_header

Watches do not return X-Etcd-Index header
main: move server configuration to etcdserver package
etcdserver: collapse dir configuration to DataDir
etcdserver: unexport EtcdServer fields where possible
Merge pull request #1096 from jonboulle/1096_embedded

simplify initialization of EtcdServer to support embedded etcd
Documentation: introduce the initial 0.5 clustering guide

Introduce the concepts of static initial cluster configuration and
document the flag migrations.
wip