Fix c_char on ARM

c_char is u8 on ARM

[breaking-change]
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.
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
Shuffle locations for Deref

Remove both `strong_count` and `weak_count` from `Weak`s and make the
methods bare functions so as not to cause trouble with `deref`.
args() doc: Fix a documentation line.
Rename variables called pq to heap

The old name was sensible when this module was PriorityQueue but isn't
anymore.
Merge pull request #1 from rust-lang/master

Update from original
DSTify free functions in std::hash