Make most of the failure functions take &(&'static str, uint)

Passing one pointer takes less code than one pointer and an integer.
Put the struct passed to unwinding functions into a static

Produces very clean asm, but makes bigger binaries.
core: Remove unneeded cfgs
std: Use correct conventions for statics in macros
Revert "Use fewer instructions for `fail!`"

This reverts commit c61f9763e2e03afbe62445877ceb3ed15e22e123.

Conflicts:
	src/librustrt/unwind.rs
	src/libstd/macros.rs
Remove an unneeded FIXME in coherence.rs

Also, let f; f = ...; is just wrong.
doc: TreeSet methods and main example.
doc: TreeMap methods with examples.

Small corrections for TreeSet examples.
doc: Main example for TreeMap.
doc: Small rewording.
Implement Hash for tuples of up to arity 12. Also change the style to be consistent with core::tuple
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 #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