Use mktemp for temporary download directory

Using the current directory may not always be appropriate, for example in
the case where it will unnecessarily trigger a backup to be made.

The only risk with this change is that systems might not have a mktemp.
I am not aware of such a system, but have not tested on Windows. It is
working on a basic Ubuntu and OS X installation.
Fall back to hard coded download directory

If mktemp fails, fall back to a hard coded directory, per @nodakai's feedback.
rustup: Don't do verbose tarball extraction

This creates an enormous amount of spew.
Several fixes for DragonFly (rebase)
Detect type inference failure when auto-dereferencing a pointer

check::autoderef() returns a ty_err when it fails to infer the type.
probe::probe() should respect this failure and fail together to prevent
further corruption.

Call stack: check::check_method_call() -> method::lookup() ->
            probe::probe() + confirm::confirm()

Fixes #19692.
Fixes #19583.
Fixes #19297.
load_self() needs to be public
Implement `reserve_len` and `reserve_len_exact` for VecMap
Use type-alignment-sized integer for discriminant types

The previous behaviour of using the smallest type possible caused LLVM
to treat padding too conservatively, causing poor codegen. This commit
changes the behaviour to use an type-alignment-sized integer as the
discriminant. This keeps types the same size, but helps LLVM understand
the data structure a little better, resulting in better codegen.
Add enum size cases to type-sizes test
Update complement-bugreport.md

`--version=verbose` doesn't exist anymore, `--version --verbose` is the way to do that now.
Fix `collections::VecMap`'s `PartialEq` implementation

Previously it took capacity into account.

Additionally remove the `ne` implementation of `RingBuf` which is the default
one anyway.
Fix some spelling errors.
Make alignment-forcing case work the same on 64 and 32-bit platforms
Rename include_bin! to include_bytes!

According to [RFC 344][], methods that return `&[u8]` should have names
ending in `bytes`. Though `include_bin!` is a macro not a method, it
seems reasonable to follow the convention anyway.

We keep the old name around for now, but trigger a deprecation warning
when it is used.

[RFC 344]: https://github.com/rust-lang/rfcs/blob/master/text/0344-conventions-galore.md

[breaking-change]
Merge pull request #19886 from brson/rustup

rustup: Don't do verbose tarball extraction

Reviewed-by: alexcrichton
Merge pull request #20001 from huonw/speeling2

Fix some spelling errors.

Reviewed-by: nick29581
Merge pull request #20153 from brianloveswords/patch-1

Update complement-bugreport.md

Reviewed-by: alexcrichton
Merge pull request #20155 from tbu-/pr_vecmap_fiximpls

Fix `collections::VecMap`'s `PartialEq` implementation

Reviewed-by: Gankro
debuginfo: Create debuginfo for for-loop variables again.
debuginfo: Clean the debuginfo module up a bit.