Instead of checking for non-pairs, remove them.

The zero value non-pairs had to be taken into account whenever a value
check was made on the elements in the Maps. It's easier to just remove
them all beforehand.
Old <-> New node edges are now non-zero.

The lookupDistance function returned zero for all the old-new edges
because oldToNewNodeDistance checked in dMapWithoutAorB for A and
B (apart from whatever was passed as the 'x' argument), which it
obviously wouldn't ever find.
oldToNewNodeDistance now looks in inMap instead like everything else.

Also rearranged the lines a bit.