only one state machine implementation
rewrite to use MultiPaxos

* add deterministic networking
* add run.py to run three cluster members and a client

This is still incredibly inefficient:
* leaders battle it out for leadership on every invocation
* message sizes are unbounded
* the size of local state is unbounded
work on cluster startup; 'seed' the cluster with a degenerate node to set initial state
implement a simple kind of leader lease using heartbeats
cleanup
run the deterministic network in approximate real time
allow proposals with no caller, for internal operations
Adopt new cluster members using a RSM-based view evolution process
Apparently functional membership-change protocol.

With lots of debugging-harness stuff still hooked up.
autopep8, fix up comments
refactor into more, smaller modules.  Write Small Things.
tests for acceptor
switch to inter-component events for better isolation
factor heartbeating out of replica
factor bootstrapping of a replica out to a new class
start other components only after bootstrapping is complete
shuffle code in replica.py to make more sense
move constant to protocol.py
factor out dependencies on network for clock, randomization, incidentally removing randomness from the implementation
Merge pull request #25 from djmitche/moderately-complex

Feature-complete Protocol - first draft.