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
Merge pull request #75 from fengjingchao/dev

fix network transport
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
fix

fix former status bug, we should not recored prepare as former status
fix 'From' in makeTimeout
Merge pull request #80 from yifan-gu/proj3

fix
fix (timeout)

test if the instance is nil before check timeou
WIP

add return instanceID
add enable/disable batching
todo: change propose to accept a group of commands instead of one
todo: add committed and executed in instance
feat (propose, CommittedNotify, ExecutedNotify)

add list argument to propose()
add CommittedNotify, ExecutedNotify
chore(demo)

enable pure flags
chore(rename data to message)
Merge pull request #81 from yifan-gu/propose

Propose
chore

1, move things from data to message
2, add From in messages
3, export fields in ballot
4, use gob to unmarshal
5, move transporters to transporter
Merge pull request #82 from yifan-gu/transport

Transport
fix

 fix fast quorum
 fix dependency clone
 fix From in prepareReply
chore(livetest)

pass nonconflict, 2 conflicts, 3 conflicts
TODO: timeout test
TODO: execution test, (I found that execution is very slow)