Re-did the node-to-node message passing algorithm

As of this commit, nodes are sent around along chords as follows:
If NodeA wants to send a message to NodeB, node_send_to_node_proc
computes Steps, the logarithm base two of the distance modulo 2^{M}
between them, rounded down. It then
determines the node to which storage process A + Steps belongs.
If A + Steps is also on Node A, the function is called recursively
with A + Steps as A.
If A + Steps is on a node other than A, it is guaranteed to be a
legal move because of how we calculate Steps, so the node passes
the message on to the new target.

We have tested this on 3-4 nodes with M=2 and M=3.

This commit also has various other bug fixes and clean-up, including
Turning off debug output by default.
Update write-up based on recent changes, & add pdf

Specifically, the sections on Rebalancing and Overflow have been
updated, additional messages have been added to the section describing
messages in the system, and the message passing argument for correctness
has been expanded.
Add updated readme.txt