More privatization, and MakePeers
Privatize and fix documentation for RequestVotes
server_test printOnFailure

I get some nondeterministic errors in TestOrdering, which I want to diagnose
a bit more. This function allows me to inspect the log after a failure.
More privatization
Safer semantics on flushTimeout
Update README.md
Update README.md
Refactor Command semantics

Command() now takes an (optional) response channel, on which the result of
the apply function will be forwarded once the command is committed. This
refactor removes the CommandResponse method from servers (and peers), and
removes the obligation of clients to consume from it.
Remove dead code
Tweak command timeout
Small experiment, fix inconsistently failing test
Fixes and restructuring; not yet complete

- flush() can return state-changing error in the leader; don't ignore it
- if Command() returns ErrDeposed, client should retry it
- VPS may have unreliable timing :)
- I need to serialize all communication from leader to a given follower;
  `go xxx` only valid if we collect *all* responses before continuing
Privatize server ID
Implementation continues; bugfixes, etc.
Signal truncated commands to client
Fix semantics of log.entriesAfter
TestLenientCommit (thanks, ongardie)
Fix a corner case
Fix a data race
Better nil-ification of commandResponse channels