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.