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
Implement Hash for RingBuf
Implement PartialOrd for RingBuf
docs: Fix typo in container guide.
doc: Correctly onclose code blocks in HashSet
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.
Hash the length of the RingBuf before hashing elements
auto merge of #16030 : treeman/rust/doc-hashset-fix, r=sfackler

Not sure how this could slip by.
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 #16020 : nham/rust/ringbuf_hash_ord, r=alexcrichton

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