Failover testing

This work will focus on dummy master failure:
- [x] graceful shutdown #65 : stop heartbeat in etcd
- [x] when a master failed, create a new bootstrap to take over
- [x] it continue what's left: Currently we stop a master manually at the beginning of SetEpoch. That means no job has been done for this epoch yet. When a new master comes up, it fetches the latest epoch and continue that epoch's and later epochs' job.
- [x] finish the same job with the same result.