WIP add timeout check

Merge branch 'proj3' of github.com:go-epaxos/epaxos into timeout

Conflicts:
	replica/replica.go

feat(timeout)

finish unitest

Conflicts:
	replica/instance_test.go
	replica/replica.go
	replica/replica_test.go
Merge branch 'timeout' of https://github.com/yifan-gu/epaxos into merge-timeout

Conflicts:
	replica/replica.go
chore(delete rejections)

We decided to delete all rejection replies, to avoid unexpected errors
caused by non-necessary complexity.
Because, when we receive a rejection, it means there must be a newer
proposer(leader), we will receive that message very soon.
Merge branch 'delete_rejection' into proj3
chore(Pass livetest1)

pass simple livetest for 3 cluster, 1 proposer, non-conflict commands
chore (move receive to a loop)

also add close
Merge pull request #78 from yifan-gu/proj3

Proj3