Avoid building as root with `sudo make install`

When running `sudo make install`, we only want to run the actual install
as root, the building of the documentation and the distribution folder
should happen as the non-root user.

Related to #13728.
Add help diagnostic messages

This adds ‘help’ diagnostic messages to rustc. This is used for anything that
provides help to the user, particularly the `--explain` messages that were
previously integrated into the relevant error message.
Re-do the 30 minute intro

This was originally on my blog, so it's incredibly informal. Let's make
it better.
Correctly generate drop glue for `Box<str>`

This fixes an ICE.  Closes issue #17734
Changed `extern crate foo as bar;` error message

Closes #17709
Track kind of closure in upvar categorization

Keep track of the kind of closure responsible for an upvar
Categorize upvars in `Fn` unboxed closures as freely aliasable

This causes borrowck to correctly reject mutation or mutable borrows
of upvars in `Fn` unboxed closures since the closure environment is
aliasable.

This also tracks the responsible closure in the aliasability
information returned and uses it to give a helpful diagnostic.

Closes issue #17780
Fix unit test that was illegally mutating an upvar
Add regression test for issue #17780
Fix target-feature codegen option syntax in rustc man page.

The man page stated that the list of features was space-separated when
it's actually comma-separated.
String::truncate doc: also fails if not a char boundary
Add regression test for issue #17734
adding iterator benches to tree-based maps for comparison purposes
auto merge of #17762 : bkoropoff/rust/issue-17734, r=alexcrichton

Closes issue #17734

r? @nick29581
Handle emitting debug info for unboxed closures

This fixes an ICE.  Closes issue #17021
Build regression test for issue #17021 with -g

This causes it to hit the previously ICEing debuginfo codepath
Fix handling of struct variants in a couple of places

Fixes #17405.
Fixes #17518.
Fixes #17800.
auto merge of #17794 : SimonSapin/rust/patch-8, r=alexcrichton
work around yet another MinGW-w64 ASLR bug
flesh out BTree docs