Reach Changes

Did the following:

1. Changed how reach is defined. Twice the reach implies half the latency. Calculated as a rolling average with an exponentially decaying weight for past events.
2. When doing RouterModule_lookup(), e.g. because we're sending packets to a node, check when each path was last pinged. Ping any which have not been pinged lately. This (hopefully) keeps reach values relatively accurate for paths we might actually want to use.
3. When selecting a path to use, select the one with the highest reach + (64 - label-length). This selects paths with the highest reach in almost all cases. When comparing paths that have never been used (reach 1 or 2), it optimistically chooses the path with the shortest label length.

The net effect is that we should generally select better performing paths than the current (label-length) method. A comparison can be seen at: http://urlcloud.net/vqOy (old method = blue, new one = red, a hybrid of the two = yellow ... the old method operates under the assumption that blue will be linear, but a power law was a slightly-less-terrible fit).