rust-mode.el: Tweak syntax table

"_" should keep the default syntax class (symbol, not word). This
allows, e.g., `forward-word' to behave in the familiar way, jumping to
underscores within a function or variable name.
Implement BorrowFrom<&'a T> for T (with mutable variants)
Mention that find() doesn't consume the full iterator
libs: make Cow usable, improve documentation

This commit makes `Cow` more usable by allowing it to be applied to
unsized types (as was intended) and providing some basic `ToOwned`
implementations on slice types. It also corrects the documentation for
`Cow` to no longer mention `DerefMut`, and adds an example.
Fix an ICE on diagnostics originating in external macros
mk/stage0: complain instead of creating an empty file

If the expected rustc snapshot is not where we expect it to be,
complain and fail at that point rather than creating a empty rustc file
and continuing until we try to run it.
mk/target: fix typo so we depend on the correct directory

Without this, if we we're using a non-standard host libdir, the target
bindir would not exist (and rustc would fail to write to the
non-existent directory).
rustdoc: avoid supplying a bad default sysroot so the librustc code can calculate it properly
configure: silence warning about LOCAL_RUST_ROOT being set

We have a default value for this ('/usr/local'), so this warning is
printed ALL the time unless one does --enable-local-rust. As a result,
it doesn't really help at all.
mk/rt: use CFG_LLVM_TARGET instead of plain target when calling llc

We add CFG_LLVM_TARGET_$(target) (which can be defined in any of the
mk/cfg/* files) and supply a default to the plain target name

CFG_LLVM_TARGET mirrors the value of llvm_target (aka llvm-target) in
the librustc_back runtime target specification.
Add vim modeline to lldb formatter

The file doesn't adhere to the python standard, but this will let vi do
The Right Thing by default
lldb: refactor print_vec_slice_val

Be more idiomatic and rely less on fiddly construction of output
doc: adding example for implementations without traits
Fix std::fmt::Binary format char in docs

This small piece of documentation was missed in the format character change
in 4af3494bb02e80badc978faa65e59625ade0c675.
rustc: Unify fat pointer ABI constants.

This merges the `trt_field_*`, `fn_field_*` and `slice_elt_*` constants
into two `FAT_PTR_*` constants. This resolves the first part of #18590.
rustc: Change all ABI constants to all caps.

This also removes `box_field_refcnt`. It was not used anywhere.
sys: reveal std::io representation to sys module

This commit adds a `AsInner` trait to `sys_common` and provides
implementations on many `std::io` types. This is a building block for
exposing platform-specific APIs that hook into `std::io` types.
libs: add std::os::unix module

The new `std::os::unix` module exposes several extension traits
for extracting file descriptors from `std::io` types.
lldb: Clean up struct printing
compiletest: namespaced enums fallout