Documentation examples for LruCache.
Cleanup LruCache doc.
mk: Add check-secondary target for tests with no x-platform risk.

We'll use this to run a subset of the test suite onto a dedicated
bot.

This puts the grammar tests and the pretty-printer tests under
check-secondary. It leanves the pretty tests under plain `check`
for now, until the new bot is added to take over.

Because check-secondary is not run as part of `make check` there
will be a set of tests that most users never run and are only
checked by bors. I think this will be ok because grammar tests
should rarely regress, and the people regressing such tests
should have the fortitude to deal with it.
mk: Add comments to primary check targets
mk: Some fixes to grammar.mk

Invoke rustc in a way that sets LD_LIBRARY_PATH,
and disable the deps on RustLexer.class when antlr isn't available.
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.
rustc: Future proof runtime injection

Rename and gensym the runtime on import, so that users
can't refer to the `native` crate.

This is unlikely to break code, but users should import the "native" crate directly.

[breaking-change]
mk: Remove check-syntax target

This appears to be redundantly named with a shortcut target for
testing the syntax crate.
mk: Print grammar info message like others
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
librustc: Resolve regions and report errors in trait/impl method
matching.

This breaks code like:

    struct Foo<'a,'b> {
        x: &'a int,
        y: &'b int,
    }

    trait Tr {
        fn foo(x: Self) {}
    }

    impl<'a,'b> Tr for Foo<'a,'b> {
        fn foo(x: Foo<'b,'a>) {} // <-- bad
    }

Change this code to not contain a lifetime mismatch error. For example:

    struct Foo<'a,'b> {
        x: &'a int,
        y: &'b int,
    }

    trait Tr {
        fn foo(x: Self) {}
    }

    impl<'a,'b> Tr for Foo<'a,'b> {
        fn foo(x: Foo<'a,'b>) {} // OK
    }

Closes #15517.

[breaking-change]
librustc: Use builder for llvm attributes.
Add tests that the injected runtime is inaccessible
librustc: Use dereferenceable attribute instead of nonnull where we can.
Implement PartialEq/Eq/Clone/Hash/FromIterator/Extendable for SmallIntMap and Show/Clone for TrieMap and TrieSet
Fix a typo in SmallIntMap documentation
rustllvm: Stub out some functions for llvm < 3.5