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
Fixed deprecation warning text for mem::move_val_init and its associated comment.
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
Rename PatUniq to PatBox. Fixes part of #13910.
configure: Move clang's libcpp out into flag
configure: Only use -m32 on x86-* 32 bit systems
configure: setup triples on hf arm platforms
Rename UTF16Item[s] to Utf16Item[s]

According to Rust's style guide acronyms should be CamelCase.

[breaking-change]
rustdoc: cross-crate source links are one level lower.

Previously this was adding one-too-many `..`s to the path for the
`gotosrc=...` links for local crates. Also, the `root_path` already ends
in `/`s so a trailing / shouldn't be added after the root (some servers
treat `...//...` different to `.../...` including the one running
doc.rust-lang.org).
auto merge of #14458 : huonw/rust/rustdoc-cross-crate-link-path, r=alexcrichton

Previously this was adding one-too-many `..`s to the path for the
`gotosrc=...` links for local crates. Also, the `root_path` already ends
in `/`s so a trailing / shouldn't be added after the root (some servers
treat `...//...` different to `.../...` including the one running
doc.rust-lang.org).
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.
auto merge of #14463 : SergioBenitez/rust/deprecation-fix, r=alexcrichton

The deprecation warning text for mem::move_val_init was incorrect. It should point users to `overwrite` instead of itself.
Move trait impls for primitives near trait definition

Closes #12925
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.
auto merge of #14437 : Sawyer47/rust/utf16-items, r=alexcrichton

According to Rust's style guide acronyms should be CamelCase.
Issue #13933: Remove transmute_mut from Arc

directly use the internal pointer instead.