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
debuginfo: Don't crash when encountering global variable with unknown source span.
Examples for Integer trait methods.
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
stability lint: ignore code from macro expansion

This small patch causes the stability lint to bail out when traversing
any AST produced via a macro expansion. Ultimately, we would like to
lint the contents of the macro at the place where the macro is defined,
but regardless we should not be linting it at the use site.

Closes #15703
Add TreeSet example.
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
Rename functions in the CloneableVector trait

* Deprecated `to_owned` in favor of `to_vec`
* Deprecated `into_owned` in favor of `into_vec`

[breaking-change]
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!
auto merge of #15716 : treeman/rust/bigint-doc, r=alexcrichton

Also use `///` for documentation instead of `/**`. End comments with `.`.
auto merge of #15718 : treeman/rust/integer-doc, r=alexcrichton

Simple usage examples for Integer methods. Also group `div_rem` and `div_mod_floor` together at the bottom of the trait, to reflect the documentation rendering.
librustc: Remove cross-borrowing of `Box<T>` to `&T` from the language,
except where trait objects are involved.

Part of issue #15349, though I'm leaving it open for trait objects.
Cross borrowing for trait objects remains because it is needed until we
have DST.

This will break code like:

    fn foo(x: &int) { ... }

    let a = box 3i;
    foo(a);

Change this code to:

    fn foo(x: &int) { ... }

    let a = box 3i;
    foo(&*a);

[breaking-change]