Add @Spell clusters to Vim syntax file

Add @Spell clusters to Vim syntax highlighting file to do spell checking
only inside comments and strings
doc: Boxes diagram shows enum value inside box.
doc: add note below diagram about memory layout.
Fixed bug when initialising bitv from bool=true
syntax::ext: replace span_fatal with span_err in many places.

This means that compilation continues for longer, and so we can see more
errors per compile. This is mildly more user-friendly because it stops
users having to run rustc n times to see n macro errors: just run it
once to see all of them.
Fixup in guide-testing.md

Added back-quotes around #[cfg(test)] which was otherwise
being interpreted as starting a header
doc: fix version stamp for TeX files

This fixes a regression introduced in
3d57b240ab1fd038b3a41fe2042dc9a0544ea53e.
Elaborate manual on matching (dereference patterns, lvalue/rvalue matching)

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
doc: fix rust.md fallout
Simplify std::num::Primitive trait definition

This removes the `Primitive::{bits, bytes, is_signed}` methods and removes the operator trait constraints, for the reasons outlined below:

- The `Primitive::{bits, bytes}` associated functions were originally added to reflect the existing `BITS` and `BYTES` statics included in the numeric modules. These statics are only exist as a workaround for Rust's lack of CTFE, and should probably be deprecated in the future in favor of using the `std::mem::size_of` function (see #11621).

- `Primitive::is_signed` seems to be of little utility and does not seem to be used anywhere in the Rust compiler or libraries. It is also rather ugly to call due to the `Option<Self>` workaround for #8888.

- The operator trait constraints are already covered by the `Num` trait.
Add FIXME comments regarding issue #11526.
Fixed typos in comments of librustc backend.
rustc: Feature gate `log_syntax!`. Closes #11602
Actually force a / in the path for ext crates

If the library is in the working directory, its path won't have a "/"
which will cause dlopen to search /usr/lib etc. It turns out that Path
auto-normalizes during joins so Path::new(".").join(path) is actually a
no-op.
xfail shootout-reverse-complement on android
Move macro-crate to run-pass-fulldeps and force-host the aux build
Make WindowsPath::new("C:foo").root_path() return Some("C:")
auto merge of #11614 : remen/rust/patch-1, r=alexcrichton

#[cfg(test)] was being interpreted as starting a header
doc: fix dangling links in rust.md

Fixes #11559 (not that the manual couldn't use a review).
auto merge of #11622 : bjz/rust/simplify-primitive-trait, r=brson

As part of #10387, this removes the `Primitive::{bits, bytes, is_signed}` methods and removes the trait's operator trait constraints for the reasons outlined below:

- The `Primitive::{bits, bytes}` associated functions were originally added to reflect the existing `BITS` and `BYTES`statics included in the numeric modules. These statics are only exist as a workaround for Rust's lack of CTFE, and should be deprecated in the future in favor of using the `std::mem::size_of` function (see #11621).

- `Primitive::is_signed` seems to be of little utility and does not seem to be used anywhere in the Rust compiler or libraries. It is also rather ugly to call due to the `Option<Self>` workaround for #8888.

- The operator trait constraints are already covered by the `Num` trait.