clean up `BinaryHeap` code
save-analysis: emit names of items that a glob import actually imports.

There is also some work here to make resolve a bit more stable - it no longer overwrites a specific import with a glob import.

[breaking-change]

Import shadowing of single/list imports by globs is now forbidden. An interesting case is where a glob import imports a re-export (`pub use`) of a single import. This still counts as a single import for the purposes of shadowing .You can usually fix any bustage by re-ordering such imports. A single import may still shadow (override) a glob import or the prelude.
Fix fallout
auto merge of #20133 : apasel422/rust/binary_heap, r=alexcrichton

Some more tidying up.
Rebasing changes
auto merge of #19254 : nick29581/rust/dxr-glob, r=pcwalton

There is also some work here to make resolve a bit more stable - it no longer overwrites a specific import with a glob import.

r?
Minor fix for the Rust language FAQ

extra library -> standard library
Make the line numbers of the source code clickable