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.
syntax: remove dead @mut Visitor impl (only used in tests).

Also, move some code only uses in the tests into the test module, and
replace some needless @mut ~[] with plain ~[].
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.
add support for the `cold` function attribute

This allows a function to marked as infrequently called, resulting in
any branch calling it to be considered colder.
Make some more rt components public

Primarily this makes the Scheduler and all of its related interfaces public. The
reason for doing this is that currently any extern event loops had no access to
the scheduler at all. This allows third-party event loops to manipulate the
scheduler, along with allowing the uv event loop to live inside of its own
crate.
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.
Register new snapshots
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.
std: Move the SendDeferred trait to std::comm
auto merge of #10117 : huonw/rust/dead-visits, r=sanxiyn

Used nowhere, and these are likely incorrect anyway: self needs to be
dereferenced once more otherwise the method calls will be reusing the
current impl... bam! Infinite recursion.
rt::task: Make current_stack_segment public again

This was done in 2145de8c and reverted in 0ada7c7f, but Servo needs it.

Closes #10065.
auto merge of #10127 : thestinger/rust/cold, r=pcwalton

This allows a function to marked as infrequently called, resulting in
any branch calling it to be considered colder.
Field identifiers now include specific spans (Closes #8263).
#8263 part 2: Adding struct name.
rewrite shootout-binarytrees.rs to match shootout directives

The old version didn't follow shootout's directives: no memory were
deallocated.  At the same time, parallelisation of the computation.

fix #2913
auto merge of #10135 : alexcrichton/rust/snapshots, r=thestinger

Plus some migration from `let mut this = self` to `mut self` (yay!)
Update prelude items in Vim syntax file.
Fix Vim indent for wrapped function arguments.
auto merge of #10141 : kmcallister/rust/current_stack_segment, r=alexcrichton

This was done in 2145de8c and reverted in 0ada7c7f, but Servo needs it.

Closes #10065.

r? @brson
auto merge of #10142 : pythonesque/rust/issue-8263, r=catamorphism

This is, I think, the minimal change required.  I would have included a test but as far as I can tell there is currently no way to precisely test that the span for an error underlines the correct word.  I did verify it manually.