Enhance timers to create ports

In addition to being able to sleep the current task, timers should be able to
create ports which get notified after a period of time.

Closes #10014
Rewrite boxed_region/memory_region in Rust

This drops more of the old C++ runtime to rather be written in rust. A few
features were lost along the way, but hopefully not too many. The main loss is
that there are no longer backtraces associated with allocations (rust doesn't
have a way of acquiring those just yet). Other than that though, I believe that
the rest of the debugging utilities made their way over into rust.

Closes #8704
Make addl_lib_search_paths a HashSet (Closes #7718).
Implement another error code found on windows.

Closes #8811
Make the documentation for std::task::spawn_sched render correctly.

Currently each line is a separate bullet point in a list: http://static.rust-lang.org/doc/master/std/task/fn.spawn_sched.html
make the bottom type immediate

Before:

    define void @_ZN3bar19h9d9b965357abc043af4v0.0E({}* noalias nocapture readnone sret, { i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone)

After:

    define void @_ZN3bar19h9d9b965357abc043af4v0.0E({ i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone)
rustpkg: Build dependencies into the correct workspace when using --rust-path-hack

When invoked with the --rust-path-hack flag, rustpkg was correctly building
the package into the default workspace (and not into the build/ subdirectory of the
parent directory of the source directory), but not correctly putting the output
for any dependencies into the default workspace as well.

Spotted by Jack.
mark bounds check failures as the cold path

LLVM is unable to determine this for most cases.

http://llvm-reviews.chandlerc.com/D2034 needs to land upstream before
this is going to have an effect. It's harmless to start generating the
expect hint now.
auto merge of #10083 : alexcrichton/rust/timer-port, r=pcwalton

In addition to being able to sleep the current task, timers should be able to
create ports which get notified after a period of time.

Closes #10014
auto merge of #10093 : alexcrichton/rust/issue-8811, r=pcwalton

Closes #8811
auto merge of #10094 : alexcrichton/rust/issue-8704, r=pcwalton

This drops more of the old C++ runtime to rather be written in rust. A few
features were lost along the way, but hopefully not too many. The main loss is
that there are no longer backtraces associated with allocations (rust doesn't
have a way of acquiring those just yet). Other than that though, I believe that
the rest of the debugging utilities made their way over into rust.

Closes #8704
auto merge of #10107 : thestinger/rust/immediate, r=huonw
auto merge of #10089 : pythonesque/rust/issue-7718, r=catamorphism

Seems pretty straightforward, but please let me know if I'm doing something wrong or the test needs to be rewritten.
Remove the extension traits for Readers/Writers

These methods are all excellent candidates for default methods, so there's no
need to require extra imports of various traits.
auto merge of #10079 : alexcrichton/rust/no-reader-util, r=brson

These methods are all excellent candidates for default methods, so there's no need to require extra imports of various traits. Additionally, this was able to remove all the weird underscores after the method names. Yay!
Handle another possible error in a unix pipe test

This cropped up on the bsd bot, and if it's an error that gets thrown then it's
fine to just whitelist another type of error in the test.
auto merge of #10095 : huonw/rust/master, r=cmr

Currently each line is a separate bullet point in a list: http://static.rust-lang.org/doc/master/std/task/fn.spawn_sched.html
auto merge of #10110 : catamorphism/rust/rustpkg-dependency-build-dir, r=metajack

r? @metajack When invoked with the --rust-path-hack flag, rustpkg was correctly building
the package into the default workspace (and not into the build/ subdirectory of the
parent directory of the source directory), but not correctly putting the output
for any dependencies into the default workspace as well.

Spotted by Jack.
auto merge of #10113 : thestinger/rust/expect, r=cmr

LLVM is unable to determine this for most cases.

http://llvm-reviews.chandlerc.com/D2034 needs to land upstream before
this is going to have an effect. It's harmless to start generating the
expect hint now.
auto merge of #10133 : alexcrichton/rust/another-error, r=thestinger

This cropped up on the bsd bot, and if it's an error that gets thrown then it's
fine to just whitelist another type of error in the test.