rustdoc: Implement stripping based on privacy

This will probably need to get tweaked once the privacy rules have been fully
agreed on, but for now this has all of the infrastructure necessary for
filtering out private items.

Closes #9410
rustdoc: Linkify all reexports.

This way each component of a reexport path is click-able to the destination that
it's referencing.
rustdoc: Start rendering variants (redirect to enum)

This allows reasonable behavior when an enum is clicked in an import.
rustdoc: Highlight function names

Closes #9460
rustdoc: Strip hidden docs by default.
rustdoc: Reduce ambiguity with clean::Type

The "Unresolved" variant could be completely removed becuase it turns out that
the interim state only very briefly lives.
rustdoc: Collapse before unindenting

Doesn't make much sense to unindent each line individually and *then* collapse
them all together.