Support for specifying the code model

The default code model is usually unsuitable for kernels,
so we add an option to specify which model we want.
mk: Fix LD_LIBRARY_PATH_ENV_NAMES in cross build
obsolete.rs: fix typo in message
rustc.1: fix typo

Uses the same wording as ``config.rs`` now.
complement-lang-faq.md: fix typos
Main example for bigint usage.

Also use `///` for documentation instead of `/**`. End comments with
`.`.

Show imports for bigint example.

They might be useful.
Improve docs on JSON.

- add one simple example of using `ToJson` trait
- make example code more readable
Implement Index and IndexMut for Vec
Add TreeSet example.
deprecate Vec::get
auto merge of #15652 : nick29581/rust/vec_index, r=acrichto
librustc: Implement the fully-expanded, UFCS form of explicit self.

This makes two changes to region inference: (1) it allows region
inference to relate early-bound regions; and (2) it allows regions to be
related before variance runs. The former is needed because there is no
relation between the two regions before region substitution happens,
while the latter is needed because type collection has to run before
variance. We assume that, before variance is inferred, that lifetimes
are invariant. This is a conservative overapproximation.

This relates to #13885. This does not remove `~self` from the language
yet, however.

[breaking-change]
libsyntax: Remove `Send` from `PtrTy` in `deriving`.

It'll be complex to port to the new explicit-self regime and it seems to
be unused.
librustc: Allow the new UFCS explicit self in trait definitions, and
remove `~self` from the test suite.
auto merge of #14022 : pcwalton/rust/explicit-self, r=pnkfelix

r? @nikomatsakis
auto merge of #15668 : steveklabnik/rust/tree_set_example, r=alexcrichton

Someone asked for an example usage of this on IRC, so I tossed together the simplest one. Obviously, this isn't up to snuff, but it's better than nothing.
auto merge of #15698 : Zoxc/rust/code-model, r=alexcrichton

The default code model is usually unsuitable for kernels,
so we add an option to specify which model we want.

Testing for this would be fragile and very architecture specific and is better left to LLVM.
auto merge of #15675 : errordeveloper/rust/json_docs, r=steveklabnik

- add one simple example of using `ToJson` trait
- make example code more readable
auto merge of #15705 : klutzy/rust/cross-ld-library, r=alexcrichton
auto merge of #15706 : phi-gamma/rust/master, r=huonw

I kept changes to each file in a separate commit. Please let me know if you prefer them
squashed!