Return a list of the gem specifications in the dependency list, sorted in
order so that no gemspec in the list depends on a gemspec earlier in the
list.

This is useful when removing gems from a set of installed gems. By
removing them in the returned order, you don’t get into as many dependency
issues.

If there are circular dependencies (yuck!), then gems will be returned in
order until only the circular dependents and anything they reference are
left. Then arbitrary gemspecs will be returned until the circular
dependency is broken, after which gems will be returned in dependency order
again.