Support link_args at the crate level. Closes #1301
rustc: Don't copy in add_used_link_args
libsyntax: Remove last use of structural records in pipes compiler.
libsyntax: Explicit-self-ify pipes compiler.
libsyntax: Long lines.
vec: grow_fn doesn't require Copy
Make univariant enums act like structs, so that they're aligned correctly.

Consts of such enums are aligned correctly, so we could either misalign
them to match the type_of, or fix the type_of.  The latter seems like a
better idea.
pub fn main
`pub fn main` for run-pass tests that didn't have it
auto merge of #4890 : jld/rust/enum-newtype-alignment, r=catamorphism
auto merge of #4979 : z0w0/rust/issue-1301, r=catamorphism
auto merge of #4996 : luqmana/rust/no-rec-pipes, r=catamorphism

Removes the last use of structural records in the pipes extension and with that, libcore has no more structural records.
Also, explicit-self-ification.
auto merge of #4998 : thestinger/rust/vec, r=catamorphism
auto merge of #5001 : jld/rust/test-pub-fn-main, r=catamorphism