Only store nodes in leaf set once

Okay, I'm changing my mind on the patch a couple of links back, where we
followed the Java FreePastry implementation and allowed a node to appear
in a leaf set more than once.  (If there are fewer nodes on the overlay
network than the size of the leaf sef, then you'd encounter a particular
node in both directions.)  I can't see why that's useful, and it
complicates the leaf set maintenance.  Until we determine otherwise, I'm
going to go back to having each node appear in the leaf set at most
once.  As part of this change, we're now correctly calculating the
minimum and maximum node IDs in the leaf set.  (We had these fields
before, but weren't updating them.)
Calculate next routing hop

This patch adds a function that queries a node to see what it thinks the
next hop should be for a message sent to some destination Pastry ID,
according to the standard Pastry routing protocol.  This doesn't include
any mechanism yet for handling node failures; my hope is that we can
handle that by removing the offending node references, and then asking
for the next hop again.  (Java FreePastry uses iterators or somesuch
nonsense, but I think that might be overly complex for our design.)
Sending messages using the routing protocol

The new `crs_node_send_message` function uses the Pastry routing
protocol to send a message to some other node in the overlay network.
It will use the local leaf set and routing table to find out which node
is the next hop, and then send the message along to that next node.
The existing (internal) `crs_node_process_message` function does another
next-hop check, sending the message one step further along the routing
chain.  Eventually, a node will determine that the message should be
delivered locally, at which point it passes the message off to its
registered applications to deserialize and process the message.

To test this, we have a new helper application that just prints out any
messages that it receives, and a new `send` test command that can be
used to send a simple one-word message from one node to another.
Merge branch 'feature/next-hop' into develop

* feature/next-hop:
  Sending messages using the routing protocol
  Calculate next routing hop
  Only store nodes in leaf set once