Add expect bootstrap '-expect=n' mode.

This allows for us to automatically bootstrap a cluster of nodes after
'n' number of server nodes join. All servers must have the same 'n' set, or
they will fail to join the cluster; all servers will not join the peer set
until they hit 'n' server nodes.

If the raft commit index is not empty, '-expect=n' does nothing because it
thinks you've already bootstrapped.

Signed-off-by: Robert Xu <robxu9@gmail.com>
Utilise new raft.SetPeers() method, move expect logic to leader.go.

This way, we don't use EnableSingleMode, nor cause chaos adding peers.

Signed-off-by: Robert Xu <robxu9@gmail.com>
Minor cleanup to logic and testsuite.

Signed-off-by: Robert Xu <robxu9@gmail.com>
Fixing merge conflict
Merge branch 'robxu9-master'