Gate literal box expressions in addition to types

Closes #10920
librustdoc: use pkgid instead of link meta
Remove {As,Into,To}{Option,Either,Result} traits.

Expanded, that is:

- `AsOption`
- `IntoOption`
- `ToOption`
- `AsEither`
- `IntoEither`
- `ToEither`
- `AsResult`
- `IntoResult`
- `ToResult`

These were defined for each other but never *used* anywhere. They are
all trivial and so removal will have negligible effect upon anyone.
`Either` has fallen out of favour (and its implementation of these
traits of dubious semantics), `Option<T>` → `Result<T, ()>` was never
really useful and `Result<T, E>` → `Option<T>` should now be done with
`Result.ok()` (mirrored with `Result.err()` for even more usefulness).

In summary, there's really no point in any of these remaining.
Rename To{Str,Bytes}Consume traits to Into*.

That is:

- `ToStrConsume` → `IntoStr`;
- `ToBytesConsume` → `IntoBytes`.
Remove tabs from configure script
Use clang instead of gcc on OS X 10.9

Apple replaced gcc with clang, but kept around a stub gcc to call
clang. This adds a check in `configure` to detect when gcc is
really clang, and switch to using clang in this situation.

Closes #10811.
librustpkg: don't clobber the crate attributes for the pkgid
std: fix spelling in docs.
std::rt: s/pausible/pausable/.
extra: fix spelling in docs.
Handle more cases in the heap lints
auto merge of #10932 : alexcrichton/rust/feature-update, r=cmr
auto merge of #10948 : cmr/rust/update_pkgid, r=metajack
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>