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.
update vim indent file
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.
Improve the zsh completions.

Currently the ZSH completions are quite old an nearly useless. This
brings them up to be compatible with current rust and makes them far
more useful.

Closes #17305
doc: Cleanup.

Remove ~~~ for code block specification. Use /// Over /** */ for doc
blocks.
doc: Methods for result::Result.
doc: Methods for option::Option
doc: Backticks and spelling mistakes.
doc: Remove "see above".
Add a forbid-output property in cfail tests
Pop the expansion context after expanding a method macro

We were leaving these on the stack, causing spurious backtraces.

I've confirmed that this test fails without the fix.
Fix warning and make code follow the text better
Document that CStrings live in the libc heap

Insists on the fact that the memory is managed by malloc
and not jemalloc
Closes #17067
support LTO against libraries built with codegen-units > 1
from_str has an impl for uint, not Option<uint>
Document that CStrings live in the libc heap

Closes issue #17067 and improves pr #17355
syntax: use an index in CodeMap instead of Gc for ExpnInfo.
rustc: fix fallout from removing the use of Gc for ExpnInfo.
Fix fallout in tests from removing the use of Gc in ExpnInfo.
rustc: remove DefArg and DefBinding in favor of DefLocal.