Digraph for packages with proper "solving" based on dep graph depths

Using this function means that you now fetch it twice to compare it twice, rather than fetching it once to compare it twice. The use of `compare_url` likely makes this code a good bit slower.