Use an absolute path in test_process_output_fail_to_start

This test is designed to ensure that running a non-existent executable
results in a correct error message (FileNotFound in this case of this
test).  However, if you try to run an executable that doesn't exist, and
that requires searching through the $PATH, and one of the $PATH components
is not readable, then a PermissionDenied error will be returned, instead
of FileNotFound.
mk: remove -fno-omit-frame-pointer

This is still used for Rust code (`Options.NoFramePointerElim = true`).
Add test case for #3243, which was fixed as part of fix for #3511.
(Lifetime of stack allocated vectors was not being enforced)

Closes #3243.
Rename CopyableVector to CloneableVector
Rename OwnedCopyableVector to OwnedCloneableVector
Rename ImmutableCopyableVector to ImmutableCloneableVector
Rename CopyableTuple to CloneableTuple
Implement an unused_result lint

I attempted to implement the lint in two steps. My first attempt was a
default-warn lint about *all* unused results. While this attempt did indeed find
many possible bugs, I felt that the false-positive rate was too high to be
turned on by default for all of Rust.

My second attempt was to make unused-result a default-allow lint, but allow
certain types to opt-in to the notion of "you must use this". For example, the
Result type is now flagged with #[must_use]. This lint about "must use" types is
warn by default (it's different from unused-result).

The unused_must_use lint had a 100% hit rate in the compiler, but there's not
that many places that return Result right now. I believe that this lint is a
crucial step towards moving away from conditions for I/O (because all I/O will
return Result by default). I'm worried that this lint is a little too specific
to Result itself, but I believe that the false positive rate for the
unused_result lint is too high to make it useful when turned on by default.
extra: move arena to libarena

In line with the dissolution of libextra - #8784 - moves arena to its own library libarena.
Changes based on PR #11787. Updates .gitignore to ignore doc/arena.
extra: move glob to libglob

In line with the dissolution of libextra - moves glob to its own library libglob.
Changes based on PR #11787. Updates .gitignore to ignore doc/glob.
Document vector destructuring with wildcard '..'
auto merge of #11889 : nikomatsakis/rust/issue-3243-stack-alloc-vec, r=nikomatsakis

(Lifetime of stack allocated vectors was not being enforced)

Closes #3243.
Treat unary struct and enum variants as rvalues

Closes #11681
Removing do keyword from librustdoc
Removing do keyword from libstd and librustc
Remove do keyword from librustuv
Removing do keyword from libnative
Removing do keyword from librustpkg
Removing do keyword from libextra
Removing do keyword from libgreen