Turn off attribute_usage warning on check-fast
test: Remove most uses of `&fn()` from the tests.
librustc: Remove remaining uses of `&fn()` in favor of `||`.
libsyntax: Remove the old-style borrowed closure type syntax from the
language.
libstd: Remove all non-`proc` uses of `do` from libstd
librustuv: Remove all non-`proc` uses of `do` from `libextra` and
`librustuv`.
libsyntax: Remove all non-`proc` `do` syntax.
librustc: Remove non-procedure uses of `do` from librustc, librustdoc,
and librustpkg.
test: Remove non-procedure uses of `do` from compiletest, libstd tests,
compile-fail tests, run-fail tests, and run-pass tests.
test: Remove all remaining non-procedure uses of `do`.
librustc: Make `||` lambdas not infer to `proc`s
libstd: Fix Win32 and other bustage.
Correctly handle libuv errors in addrinfo calls

It turns out that libuv was returning ENOSPC to us in our usage of the
uv_ipX_name functions. It also turns out that there may be an off-by-one in
libuv. For now just add one to the buffer size and handle the return value
correctly.

Closes #10663
auto merge of #10664 : alexcrichton/rust/issue-10663, r=luqmana

It turns out that libuv was returning ENOSPC to us in our usage of the
uv_ipX_name functions. It also turns out that there may be an off-by-one in
libuv. For now just add one to the buffer size and handle the return value
correctly.

Closes #10663
auto merge of #10673 : klutzy/rust/quite, r=alexcrichton
librustc: Fix merge fallout.
auto merge of #10581 : pcwalton/rust/dedo, r=pcwalton

r? @alexcrichton
Clean up statically initialized data on shutdown

Whenever the runtime is shut down, add a few hooks to clean up some of the
statically initialized data of the runtime. Note that this is an unsafe
operation because there's no guarantee on behalf of the runtime that there's no
other code running which is using the runtime.

This helps turn down the noise a bit in the valgrind output related to
statically initialized mutexes. It doesn't turn the noise down to 0 because
there are still statically initialized mutexes in dynamic_lib and
os::with_env_lock, but I believe that it would be easy enough to add exceptions
for those cases and I don't think that it's the runtime's job to go and clean up
that data.
Improve the rt::thread module

* Added doc comments explaining what all public functionality does.
* Added the ability to spawn a detached thread
* Added the ability for the procs to return a value in 'join'