rustc: Add knowledge of separate lookup paths

This commit adds support for the compiler to distinguish between different forms
of lookup paths in the compiler itself. Issue #19767 has some background on this
topic, as well as some sample bugs which can occur if these lookup paths are not
separated.

This commits extends the existing command line flag `-L` with the same trailing
syntax as the `-l` flag. Each argument to `-L` can now have a trailing `:all`,
`:native`, `:crate`, or `:dependency`. This suffix indicates what form of lookup
path the compiler should add the argument to. The `dependency` lookup path is
used when looking up crate dependencies, the `crate` lookup path is used when
looking for immediate dependencies (`extern crate` statements), and the `native`
lookup path is used for probing for native libraries to insert into rlibs. Paths
with `all` are used for all of these purposes (the default).

The default compiler lookup path (the rustlib libdir) is by default added to all
of these paths. Additionally, the `RUST_PATH` lookup path is added to all of
these paths.

Closes #19767
Added `get_address_name`, an interface to `getnameinfo`
Don't promise that we talk about Rustdoc more

Fixes #20088
collections: use Unique in btree::Node
auto merge of #20160 : nick29581/rust/ranges2, r=nikomatsakis

The first six commits are from an earlier PR (#19858) and have already been reviewed. This PR makes an awful hack in the compiler to accommodate slices both natively and in the index a range form. After a snapshot we can hopefully add the new Index impls and then we can remove these awful hacks.

r? @nikomatsakis (or anyone who knows the compiler, really)
Fix impl of Send and Sync for mips

In f436f9ca2, the Send and Sync traits became `unsafe`. They were updated for `target_arch = x86` and others, but `mips` was missed.
mk: Allow an optional number to come after the beta version label
mk: The beta channel temporarily produced alpha versions
Forbid static methods in object safe traits

Closes #19949 and rust-lang/rfcs#428

[breaking change]

If you have traits used with objects with static methods, you'll need to move
the static methods to a different trait.
Tests
librustc_trans: Remove some dead code now that procs are gone.
auto merge of #20320 : alexcrichton/rust/rollup, r=alexcrichton
PR#20326 : Issue#20322: Adding unsafe Send and Sync traits implementation for RingBuf
Implement `Clone` for a large number of iterators & other adaptors.

It's useful to be able to save state.
auto merge of #19941 : alexcrichton/rust/issue-19767, r=brson

This commit adds support for the compiler to distinguish between different forms
of lookup paths in the compiler itself. Issue #19767 has some background on this
topic, as well as some sample bugs which can occur if these lookup paths are not
separated.

This commits extends the existing command line flag `-L` with the same trailing
syntax as the `-l` flag. Each argument to `-L` can now have a trailing `:all`,
`:native`, `:crate`, or `:dependency`. This suffix indicates what form of lookup
path the compiler should add the argument to. The `dependency` lookup path is
used when looking up crate dependencies, the `crate` lookup path is used when
looking for immediate dependencies (`extern crate` statements), and the `native`
lookup path is used for probing for native libraries to insert into rlibs. Paths
with `all` are used for all of these purposes (the default).

The default compiler lookup path (the rustlib libdir) is by default added to all
of these paths. Additionally, the `RUST_PATH` lookup path is added to all of
these paths.

Closes #19767
iOS: fallout of Sync oibit
Handle function calls to integers in model lexer correctly

closes #15877
Minor change to wording in `Variables and Bindings`

In the context of explaining the declaration of mutable bindings, using 'intended' probably conveys the meaning better than 'cared'.
Refactor various queries out of `ty` and into `trans/common`
Make ExprUseVisitor<..> use inherited parameter environments.