docs(standbys): specification for standby module
feat: implement standby mode

Change log:
1. PeerServer
- estimate initial mode from its log through removedInLog variable
- refactor FindCluster to return the estimation
- refactor Start to call FindCluster explicitly
- move raftServer start and cluster init from FindCluster to Start
- remove stopNotify from PeerServer because it is not used anymore
2. Etcd
- refactor Run logic to fit the specification
3. ClusterConfig
- rename promoteDelay to removeDelay for better naming
- add SyncClusterInterval field to ClusterConfig
- commit command to set default cluster config when cluster is created
- store cluster config info into key space for consistency
- reload cluster config when reboot
4. add StandbyServer
5. Error
- remove unused EcodePromoteError
refactor(find_cluster): make it simpler
chore(cluster_config): rename SyncClusterInterval to SyncInterval

for better naming
feat(option): add cluster config option

It will be used when creating a brand-new cluster.
chore(standby): minor changes based on comments
feat(cluster_config): change field from int to float64

This is modified for better flexibility, especially for testing.
bump(goraft/raft): c76c5d95
chore(cluster_config): set default timeout to 5s

Or the leader death could let the standbys down for a rather long time.
chore(standby): minor changes based on comments
fix(simple_snapshot_test): enlarge reasonable index range
chore(standby_server): let syncInterval represent in second unit

This is done to keep consistency with other namings.
Merge pull request #779 from unihorn/89

feat: implement standby mode