move client.py to request.py to match the class name
remove alpha concurrency, heartbeats, etc.
tests for Bootstrap
tests for Commander
tests for leader, with minor refactors
test member and member_replicated, update leader tests to use mocks, small fixes
test network
fix broken assert
test scout and replica
more tests
add docstrings to all tests
apply autopep8, fix pyflakes
switch timers to an object with a cancel method
use itertools.count
use namedtuples for messages
add an integration test to run the whole protocol.. currently failing
provide sender address to every do_XXX method

This removes Join's 'requester' and Catchup's 'sender' attributes
WIP - CHAPTER
adopt new leader-guessing strategy

If no leader is known, replica will try the local leader -- at least
it's known to be up!  The acceptor informs the replica when a promise is
made, in hopes that promise will be to the new leader.

This fixes the integration test.
don't share decisions between nodes