std: Remove Option.or_{default,zero}

These can be replaced with `Some(option.or_default())`.
Document a few undocumented modules in libstd

Hopefull this will make our libstd docs appear a little more "full".
extra: minor cleanup of Zero and Default syntax extension
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 useless `rust_main` wrapper

the real entry point will now pass the user's main function directly to
the scheduler
Remove and replace cond! Closes #9282.
Renumber the lang items correctly

Also add a test to help prevent this from getting out of sync again.
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.
librustc/libstd: No longer pass crate_map to start.
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).
libstd/librustc: Make the crate_map a weak symbol that libstd links against.
auto merge of #9284 : thestinger/rust/main, r=luqmana

the real entry point will now pass the user's main function directly to
the scheduler
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
tests: Remove crate_map from start.
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).
clarify vector stub in the container tutorial

This also renames the section, as managed vectors cannot be resized
(since it would invalidate the other references).
0.8 release notes
doc: Update container tutorial with new names of methods and macros

`deque` -> `ringbuf`, mention `extra::dlist`.

fix reference to vector method `bsearch`. Also convert all output
in example code to use `print!`/`println!`
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