auto merge of #11944 : nathanielherman/rust/vec_opt, r=alexcrichton

Closes #11733
Fix `@str` removal tests.
Changes from the review of the @str PR.
std,extra: remove use of & support for @[].
arena: stop using @[].
Update/delete tests using @[].
syntax: convert LitBinary from @[u8] to Rc<~[u8]>.
rustc: remove use of @[].
syntax: add an obsolete syntax warning for @[].
syntax: remove the handling of @str and @[] from the parser completely.
rustc: Remove the vstore handling of @str and @[].
syntax: remove the unused Vstore enum.

Seems to have been replaced by ExprVstore.
rustc: update docs & propagate @[]/@str removal more.

Various functions can now be made specific to ~[], or just non-managed
vectors.
un-xfail test for #8498 and replace prints w/ asserts
auto merge of #11973 : dotdash/rust/u64_to_bytes, r=huonw

LLVM fails to properly optimize the shifts used to convert the source
value to the right endianess. The resulting assembly copies the value
to the stack one byte at a time even when there's no conversion required
(e.g. u64_to_le_bytes on a little endian machine).

Instead of doing the conversion ourselves using shifts, we can use the
existing intrinsics to perform the endianess conversion and then
transmute the value to get a fixed vector of its bytes.

Before:
````
test be_i8  ... bench:     21442 ns/iter (+/- 70)
test be_i16 ... bench:     21447 ns/iter (+/- 45)
test be_i32 ... bench:     23832 ns/iter (+/- 63)
test be_i64 ... bench:     26887 ns/iter (+/- 267)

test le_i8  ... bench:     21442 ns/iter (+/- 56)
test le_i16 ... bench:     21448 ns/iter (+/- 36)
test le_i32 ... bench:     23825 ns/iter (+/- 153)
test le_i64 ... bench:     26271 ns/iter (+/- 138)
````
After:
````
test be_i8  ... bench:     21438 ns/iter (+/- 10)
test be_i16 ... bench:     21441 ns/iter (+/- 15)
test be_i32 ... bench:     19057 ns/iter (+/- 6)
test be_i64 ... bench:     21439 ns/iter (+/- 34)

test le_i8  ... bench:     21438 ns/iter (+/- 19)
test le_i16 ... bench:     21439 ns/iter (+/- 8)
test le_i32 ... bench:     21439 ns/iter (+/- 19)
test le_i64 ... bench:     21438 ns/iter (+/- 22)
````
auto merge of #11974 : huonw/rust/no-at-vec, r=pcwalton

This removes @[] from the parser as well as much of the handling of it (and `@str`) from the compiler as I can find.

I've just rebased @pcwalton's (already reviewed) `@str` removal (and fixed the problems in a separate commit); the only new work is the trailing commits with my authorship.

Closes #11967
impl Clone for CString

Clone tests
impl Eq for CString
auto merge of #11840 : cmr/rust/cstr, r=kballard
auto merge of #11959 : omasanori/rust/update-zsh, r=brson

Updating the list of options and sorting it.