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

This one does not give us any guarantees in cases where you have a deps tree like:
```
    A
  /   \
 B     C
 |     |
 D1    D2
```
On whether `D1` will always be seen as coming before `D2` will it?

I'm a bit confused about why we use this in here (topsort) while we have the `solve` function later in the module that appears to return us a similar list to what we need to store.