Make single nondirectional link between neighbors

This will probably eventually be a doubly-linked directional setup once
I get things more solidified, but for right now it's just unnecessary
confusion.
Cleanup
Detect loops in path reconstruction and then abort
Correct check in path finding to trim out cycles

This means I no longer need the ejection branch in path
reconstruction.