First draft of cluster chapter

I'm reasonably happy with the shape and content of the chapter here, so I think it's ready for a review.

The code is mostly in place, although there are a number of "TODO" tags that I'm still pondering.  The big one -- that affects the chapter -- is to remove the 'catchup' support entirely.  I can't quite convince myself that the implementation will still perform correctly without it, though.
Before we jump into Paxos, it would be nice to talk about the classes of algorithms or approaches that are used to keep servers in sync; at the very least, a high-level discussion of what a consensus algorithm is and the gist of how they work in general would be helpful.