Crates in Cargo.toml are no longer topologically sorted

A fair amount of our release machinery relied on being able to get a topologically sorted list of crates by running maint/list-crates, which just lists the crates in the order that they appear in Cargo.toml. The topological-sorting property was enforced by maint/check_toposort.

With bfd41ddb (from !549 (merged)) it appears that the crates are now sorted lexically. But the following comment still appears:

# Please keep this list topologically sorted by dependency relation, so
# that every crate appears _before_ any other crate that depends on it.

We have two choices:

  1. Revert the sorting of bfd41ddb as it applies to the top-level Cargo.toml. Possibly run check_toposort in our CI so this can't happen again.
  2. Replace list-crates and check_toposort with a script that performs the topological sort.

We should solve this in the next month, so that I can do the next release. :)

cc @Diziet