rewrite everything to use a digraph, but it works now!

At least, it seems to work. It consistently finds 8 paths that take 150
minutes and traverse the entire system (and agree with what I hypothesized
about the shortest paths before creating the project).

Also, it runs in about a minute on my old ThinkPad, so it's probably fast
enough with the brute force approach.