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
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.
lldb: Clean up struct printing
compiletest: namespaced enums fallout
Add `weak_count` and `strong_count` to Rc and Arc

These functions allow you to see how many weak and strong references
there are to an `Arc`, `Rc`, or an `rc::Weak`. Due to the design of
`Arc` it is not possible to get the number of weak references of an
arbitrary `arc::Weak`. Look in `arc.rs` for a more in-depth explanation.

On `arc::Arc` and `arc::Weak` these operations are wait-free and atomic.
libs: stabilize ascii module

This is an initial API stabilization pass for `std::ascii`. Aside from
some renaming to match conversion conventions, and deprecations in favor
of using iterators directly, almost nothing is changed here. However,
the static case conversion tables that were previously public are now private.

The stabilization of the (rather large!) set of extension traits is left
to a follow-up pass, because we hope to land some more general machinery
that will provide the same functionality without custom traits.

[breaking-change]
Fallout from deprecation
Register new snapshots