Once https://github.com/rust-lang/rust/issues/84304 is fixed, I can get rid of ExternCrate altogether in favor of CrateNum, but in the meantime, this shrinks ExternalCrate quite a lot.
This might hurt compile-times; if it does, I can add `primitive` and `keyword` queries. I expect this to improve compilemem.
Helps with https://github.com/rust-lang/rust/issues/76382.