std: use a `match` in `assert_eq!` to extend the lifetime of the args.

This enables

    assert_eq!(foo.collect::<Vec<...>>().as_slice(), &[1,2,3,4]);

to work, by extending the lifetime of the .as_slice() rvalue.
collections: replace all ~[T] with Vec<T>.
Emit intrinsic lazily
Remove the unused Point struct in the assert-eq-macro-fail.rs test.
libstd: Implement `StrBuf`, a new string buffer type like `Vec`, and
port all code over to use it.
auto merge of #13436 : pongad/rust/lazyemit, r=thestinger

Fixes #11926
auto merge of #13437 : kaseyc/rust/remove_unnecessary_struct, r=sanxiyn

Removes the unused Point struct from assert-eq-macro-fail.rs.
auto merge of #13350 : huonw/rust/devec-collections, r=alexcrichton

collections: replace all ~[T] with Vec<T>.
debuginfo: Improve source code position assignment for inlined functions.

This commit makes sure that code inlined from other functions isn't assigned the source position of the call site, since this leads to undesired behavior when setting line breakpoints (issue #12886)
debuginfo: Implement discriminator type metadata re-use.

An optimization for sharing the type metadata of generic enum discriminators between monomorphized instances (fixes issue #12840)
debuginfo: Don't create debuginfo for statics inlined from other crates.

Fixes issue #13213, that is linker errors when the inlined static has been optimized out of the exporting crate.
Remove references to @Trait from a compiler error message
Fix outdated lint warning about inner attribute

It suggested adding a semicolon instead of the new syntax using an exclamation
mark.
std,serialize: remove some internal uses of ~[].

These are all private uses of ~[], so can easily & non-controversially
be replaced with Vec.
std,native,green,rustuv: make readdir return `Vec`.

Replacing `~[]`. This also makes the `walk_dir` iterator use a `Vec`
internally.
std,syntax: make std::fmt::parse use `Vec`s.
green: de-~[].
native: remove some internal ~[].
Remove some internal ~[] from several libraries.

Some straggling instances of `~[]` across a few different libs. Also,
remove some public ones from workcache.
Stop using transmute_mut in RefCell

This is supposedly undefined behavior now that Unsafe exists, so we'll
use Cell instead.