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.
Handle provided trait methods when giving inference error suggestions

This fixes an ICE.  Closes issue #17758
Add regression test for issue #17758
Correctly generate drop glue for `Box<str>`

This fixes an ICE.  Closes issue #17734
Make examples for AtomicInt refer to AtomicInt

The examples for fetch_or, fetch_and and fetch_xor for
std::sync::atomic::AtomicInt used AtomicUint instead of AtomicInt.
Fix infinite recursion in Writer impl for &mut Writer

Closes issue #17767
Update LLVM.
docs: Reference hoedown instead of sundown
Changed `extern crate foo as bar;` error message

Closes #17709
docs: Fix short hash link to github

The escaped newline in the middle of the variable reference breaks the
short hash substitution, leaving the link text exmpty; rewrap so that
each replacement is on its own line.
auto merge of #17761 : bkoropoff/rust/issue-17758, r=alexcrichton

This fixes an ICE and closes issue #17758
Rename vector patterns to array patterns

Closes #17765.
auto merge of #17766 : pminten/rust/atomic-int-in-examples, r=alexcrichton

The examples for fetch_or, fetch_and and fetch_xor for
std::sync::atomic::AtomicInt used AtomicUint instead of AtomicInt.
Tweak ‘discriminant value already exists’ error message

Closes #15524.
Give a more descriptive error when marking non-test items as #[test]

Closes #14772.
auto merge of #17772 : bkoropoff/rust/issue-17767, r=alexcrichton

Closes issue #17767
Add intrinsics::unreachable
Add tests for intrinsics::unreachable