Move to a breadth-first search implementation for finddeps.

This has the disadvantage that it only returns one (first) path, and
terminates. Also, limit the targets to only 2 of a kind, in a (from, to)
relationship.

BFS has the advantage, however, of being much much much much faster than a DFS.
While the DFS ran for what was 4-5 hours, the BFS returns in under 300ms.