auto merge of #10970 : erickt/rust/master, r=alexcrichton

This modifies the `configure` to set `CFG_ENABLE_CLANG=1` if `gcc` is actually `clang`. This is needed because OS X's clang enables warning on unused command line arguments. Our build system suppresses this by default, but when `CFG_ENABLE_CLANGE=0`, we do not. This causes one of the tests to fail. This patch changes rust to directly use clang, which fixes the build failure.

Closes #10811
std::vec: remove unnecessary count parameter on {bytes,
raw}::copy_memory.

Slices carry their length with them, so we can just use that
information.
std::vec::bytes: remove obsolete functions.

These are less useful versions of the comparison operators and TotalOrd
trait.
std::vec::raw: clean up docs.
std::vec: move pointless `raw::get` and `unsafe_get` functions.

This can easily be written as `(*v.unsafe_ref(i)).clone()`, or just
`*v.unsafe_ref(i)` for primitive types like `i32` (the common case).
Move std::{str,vec}::raw::set_len to an unsafe method on Owned{Vector,Str}.
Correct definition of lvalues, fixes #10890

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
std::vec: convert to(_mut)_ptr to as_... methods on &[] and &mut [].
auto merge of #10974 : huonw/rust/spellck, r=alexcrichton
auto merge of #10984 : huonw/rust/clean-raw, r=cmr

See commits for details.
librustc: Remove identifiers named `box`, since it's about to become a keyword.
libsyntax: Implement the new `box` syntax for unique pointers.
libstd: Fix merge fallout.
auto merge of #10929 : pcwalton/rust/deboxing, r=pcwalton

...eyword.

r? @brson
auto merge of #10982 : ezyang/rust/lvalue-def, r=pcwalton

Based off of Niko's proposed definition of lvalues.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Forbid multiple imports in use statements

Closes #10911
Register new snapshots

Understand 'pkgid' in stage0. As a bonus, the snapshot now contains now metadata
(now that those changes have landed), and the snapshot download is half as large
as it used to be!
auto merge of #10919 : alexcrichton/rust/snapshots, r=brson

Understand 'pkgid' in stage0. As a bonus, the snapshot now contains now metadata
(now that those changes have landed), and the snapshot download is half as large
as it used to be!
Move logic for test output generation forward

By performing this logic very late in the build process, it ended up leading to
bugs like those found in #10973 where certain stages of the build process
expected a particular output format which didn't end up being the case. In order
to fix this, the build output generation is moved very early in the build
process to the absolute first thing in phase 2.

Closes #10973
AST Visitor now walks enum discriminant expression