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
inform replica of leader change when the leader is elected
don't catchup already-decided proposals
re-propose when a slot is decided, not committed

If a slot this replica proposed for is decided in favor of a different
proposal, then the replica should re-propose it with a new slot.  This
can happen as soon as the slot is decided -- no need to wait until it is
committed.
add more integration tests
only change latest_leader when one is elected

This works until the current leader dies, in which case the other nodes
will continue mindlessly re-transmitting proposals to it.
leader sends Active messages while it's active, used as a hearbeat
fix typo