rustc: Use rust strings for failure arguments

This avoids having to perform conversions from `*u8` to `&'static str` which can
suck in a good deal of code.

Closes #14442
rust manual: supertraits seperator is wrong
rustc: clarify warning about native deps for a staticlib.

This adjusts the "unlinked native library" warning one receives when
compiling with `crate_type="staticlib"`. The warning is just trying to
tell the user that they need to link against these libraries, but the
old text wasn't making this obvious; the new text says this explicitly.
mk: Don't build any docs with --disable-docs.
native: Ignore stdio fds with /dev/null

When spawning a process, stdio file descriptors can be configured to be ignored,
which basically means that they'll be closed. Currently this is done by
literally closing the file descriptors in the child, but this can have adverse
side effects if the child process then opens a new file descriptor, assigning it
to a stdio number.

To work around the problems of the child, this commit alters the process
spawning code to map stdio fds to /dev/null on unix (and a similar equivalent on
windows) when they are specified as being ignored. This should allow spawned
programs to have more expected behavior when opening new files.

Closes #14456
Doc: `static mut` is unsafe too

According to the corresponding section, accessing a mutable static variable requires `unsafe` too, and I believe it counts as as language level feature. Add it to the relevant list in the Unsafety section.
std: Remove format_strbuf!()

This was only ever a transitionary macro.
Issue #13933: Remove transmute_mut from IO

The IO libraries casted self to mut so they can pass it to seek(SEEK_CUR, 0).
Fix this by introducing a private seek function that takes &self
  - of course one should be careful with it if he lacks an
    exclusive reference to self.
Issue #13933: Remove transmute_mut from Arc

directly use the internal pointer instead.
Silence warning in RefCell test suite
Add AST node for pattern macros
Add patterns to MacResult
Expand macros in patterns
Parse macros in patterns

Fixes #6830.
Test pattern macros
auto merge of #14298 : kmcallister/rust/pattern-macros, r=huonw

First commit is an unrelated fix for a test suite warning I introduced last week.
auto merge of #14465 : Ryman/rust/patch-1, r=alexcrichton
auto merge of #14476 : luqmana/rust/docs, r=alexcrichton

We were still generating compiler docs even with --disable-docs passed.

cc @pnkfelix
Don't enable libcpp for llvm by default.
auto merge of #14451 : alexcrichton/rust/issue-14442, r=brson

This avoids having to perform conversions from `*u8` to `&'static str` which can
suck in a good deal of code.

Closes #14442