std::borrow: Use raw pointer comparison for `ref_eq`

Compare as `*T` in `ref_eq` instead of casting to uint, to match what
std::ptr does.
Remove and replace cond! Closes #9282.
Allow trailing commas in format!

This is more consistent with other parts of the language and it also makes it
easier to use in situations where format string is massive.
Implement process bindings to libuv

This is a re-landing of #8645, except that the bindings are *not* being used to
power std::run just yet. Instead, this adds the bindings as standalone bindings
inside the rt::io::process module.

I made one major change from before, having to do with how pipes are
created/bound. It's much clearer now when you can read/write to a pipe, as
there's an explicit difference (different types) between an unbound and a bound
pipe. The process configuration now takes unbound pipes (and consumes ownership
of them), and will return corresponding pipe structures back if spawning is
successful (otherwise everything is destroyed normally).
rustpkg: Make crates, not packages, the unit of rustpkg dependencies

Treating a package as the thing that can have other packages depend on it,
and depends on other packages, was wrong if a package has more than one
crate. Now, rustpkg knows about dependencies between crates in the same
package. This solves the problem reported in #7879 where rustpkg wrongly
discovered a circular dependency between thhe package and itself, and
recursed infinitely.

Closes #7879
auto merge of #9263 : catamorphism/rust/rustpkg-issue-7879, r=brson

r? @brson Treating a package as the thing that can have other packages depend on it,
and depends on other packages, was wrong if a package has more than one
crate. Now, rustpkg knows about dependencies between crates in the same
package. This solves the problem reported in #7879 where rustpkg wrongly
discovered a circular dependency between thhe package and itself, and
recursed infinitely.

Closes #7879
auto merge of #9260 : alexcrichton/rust/libuv-processes, r=brson

This is a re-landing of #8645, except that the bindings are *not* being used to
power std::run just yet. Instead, this adds the bindings as standalone bindings
inside the rt::io::process module.

I made one major change from before, having to do with how pipes are
created/bound. It's much clearer now when you can read/write to a pipe, as
there's an explicit difference (different types) between an unbound and a bound
pipe. The process configuration now takes unbound pipes (and consumes ownership
of them), and will return corresponding pipe structures back if spawning is
successful (otherwise everything is destroyed normally).
0.8 release notes
Remove rust_run_program.cpp

Some of the functions could be converted to rust, but the functions dealing with
signals were moved to rust_builtin.cpp instead (no reason to keep the original
file around for one function).

Closes #2674
auto merge of #9280 : alexcrichton/rust/less-c++, r=brson

Some of the functions could be converted to rust, but the functions dealing with
signals were moved to rust_builtin.cpp instead (no reason to keep the original
file around for one function).

Closes #2674

Because less C++ is better C++!
auto merge of #9291 : jzelinskie/rust/remove-cond, r=alexcrichton

This is my first contribution, so please point out anything that I may have missed.

I consulted IRC and settled on `match () { ... }` for most of the replacements.
auto merge of #9292 : blake2-ppc/rust/borrow-ref-eq, r=huonw

std::borrow: Use raw pointer comparison for `ref_eq`

Compare as `*T` in `ref_eq` instead of casting to uint, to match what
std::ptr does.
Turned extra::getopts functions into methods
Some minor api and doc adjustments
auto merge of #9267 : Kimundi/rust/master, r=huonw
auto merge of #9299 : alexcrichton/rust/fmt-trailing-comma, r=huonw

This is more consistent with other parts of the language and it also makes it
easier to use in situations where format string is massive.
auto merge of #9313 : brson/rust/relnotes, r=thestinger
librustc: Change fold to use traits instead of `@fn`.
librustc: Remove garbage collected functions from front/{config,test} and metadata/{tydecode,tyencode}
librutsc: Port the pretty printer annotation infrastructure to use traits instead of garbage collected functions.
librustc: Make the fall-through case in match not use garbage collected functions