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
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
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.
rustc: remove BindingMode from DefLocal.
rustc: add a closure depth to DefUpvar.
rustc: move type definitions from middle::freevars to middle::ty.
rustc: move freevar finding to resolve.
rustc: remove Gc<Def> and depth from DefUpvar.
Doc says to avoid mixing allocator instead of forbiding it
std::rt::backtrace: Fix backtrace on Win64

`struct CONTEXT` and its substructs require 16-byte alignment.
stop disabling ASLR in normal Windows builds

Closes #16514
Implement slicing syntax.

`expr[]`, `expr[expr..]`, `expr[..expr]`,`expr[expr..expr]`

Uses the Slice and SliceMut traits.

Allows ... as well as .. in range patterns.
libsyntax: Disallow keywords followed by `::`.

This breaks code that looked like:

    mymacro!(static::foo);

... where `mymacro!` expects a path or expression. Change such macros to
not accept keywords followed by `::`.

Closes #17298.

[breaking-change]
librustc: Implement the syntax in the RFC for unboxed closure sugar.

Part of issue #16640. I am leaving this issue open to handle parsing of
higher-rank lifetimes in traits.

This change breaks code that used unboxed closures:

* Instead of `F:|&: int| -> int`, write `F:Fn(int) -> int`.

* Instead of `F:|&mut: int| -> int`, write `F:FnMut(int) -> int`.

* Instead of `F:|: int| -> int`, write `F:FnOnce(int) -> int`.

[breaking-change]