Make test expansion induce less reachability

We previously reexported entire modules, which caused private things to
become reachable and trip the dead code and private items in public API
lints.

Closes #15912
auto merge of #16020 : nham/rust/ringbuf_hash_ord, r=alexcrichton

cc #15294
auto merge of #16026 : ruud-v-a/rust/patch-1, r=steveklabnik
auto merge of #16031 : arielb1/rust/remove_unneeded_fixme, r=kballard

The issue was fixed a month ago - remove the workaround.
Implement PartialOrd for TrieMap and TrieSet
Implement PartialOrd for SmallIntMap
Implement PartialOrd for Bitv and BitvSet
Implement Ord for TrieMap/TrieSet/SmallIntMap/Bitv/BitvSet
rustdoc: show struct field docs when inlined

Some minor changes to the compiler to expose this information. Very
inconvenient since struct fields aren't an item. Adds (yet another) table to
metadata.

Closes #15739
rustdoc: remove extraneous .move_iter().collect()s

The impl of Clean for Vec obsoleted these long, long ago.
rustc: encode is_sugared_doc on ast::Attribute
doc: Monty Hall simulation for std::rand

A larger example for std::rand
Omit unnecessary stack slots for ignored return values

If we have an immediate return value that doesn't need to be dropped, we
don't have to create a stack slot for it.
Emit lifetime end markers for allocas for ignored return values
doc: Method examples for String

Reword comments on unsafe methods regarding UTF-8.
rustdoc: improvements to stability dashboard

* Makes dashboard width dynamic.
* Colors unmarked items.
* Gives overall crate percentages.
doc: More efficient Monty Hall simulation
doc: use //! instead of /*! ... */ in std::rand
Fix typo in getopts::getopts documentation, return Matches instead of Opt
collections, unicode: Add support for NFC and NFKC