Merge pull request #33 from xiangli-cmu/master

Check checksum before load snapshot
Merge pull request #34 from xiangli-cmu/master

clean up promotion
Merge pull request #36 from xiangli-cmu/master

when promoted, election timeout should be stopped
Merge pull request #38 from xiangli-cmu/master

change log ouput format to Lmicroseconds
make stepdown blocking
close debugging
Merge pull request #39 from xiangli-cmu/server

Blocking the transportation when the server will stepdown
after stepdown candidate should return from collectvote and restart election timeout
Merge pull request #40 from xiangli-cmu/server

after stepdown candidate should return from collectvote and restart electiontimeout
timeout for transfere. This helps when the node is far left behind. The server will not wait for sending a large package before send the other heartbeat
init the log entries.
rafactor server.go
reduce one gorotine to select in peer.go flush()
server should not be blocking will holding the lock
Merge pull request #42 from xiangli-cmu/server

Server.go refactor
add server state mutex to avoid state race condition
change > to >=. > will cause panic when resp.CommitIndex equals prevLogIndex
Merge pull request #45 from xiangli-cmu/server

add server state mutex to avoid state race condition
[Fix #47] Clean up external interface.
Merge pull request #48 from benbjohnson/47-external-interface-cleanup

[Fix #47] Clean up external interface.