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.
Rename assert_eq arguments to left and right.

The names expected and actual are not used anymore in the output. It also
removes the confusion that the argument order is the opposite of junit.
Fix po4a conf file

This line was declared twice, which causes the build of i10n docs to
fail.
Fix inappropriate ## headings

Fixes #15499.
Fix up some {ignore} and {notrust}s

These should be properly annotated instead.

Fixes #16219.
Don't preserve line breaks in inline code

Closes #19323.
Update intro.md
gdb < RUST_BACKTRACE

Fixes #19717
reference: type definition -> type alias

Fixes #9266
Add comments with type annotations.

This will hopefully help people with their first steps in Rust.

Fixes #16143.
Remove mentions of sundown.
Use rust-installer for installation

This is just a refactoring of the current installer so that Rust and Cargo
use the same codebase.

cc #16456
serialize: Avoid stray nul characters when auto-serializing char.

Fixes #19719.
Add coercions from *mut to *const and from &mut to *const.
Add doctests for `iter` and `into_iter` for BTreeSet.
rustdoc: Properly inline const items

Build `clean::ConstantItem` values in the `inline` module and
pretty-print the AST for inlined const items.

Doc strings are still missing from inlined constants (see #19773).

Partially address #18156, #19722, #19185

Fix #15821
gedit language spec: add new-style Unicode escapes
Add Ord impl to raw pointers
Remove feature gate directives for `if_let`, `while_let`, and `tuple_indexing`.