Fix some C integer size related bugs that were causing addReach/subReach...

The addReach/subReach functions (especially the latter) were sometimes returning nonsense, due to some expressions being evaluated as uint32_t and overflowing. Decided copying to uint64_t was better than adding a bunch of casts (since those make it hard for the reader to parse the algebra).

Also reordered the arguments of subReach to better match addReach and make it slightly easier to remember. The first argument is now consistently the path closer to you, and the second argument is the path further away.