Fix #7740: gather_loans should not recur into the items of the block.

gather_loans does not need to recurse into any items declared in the
current block.  Rather than special-case `fk_item_fn` and `fk_method`,
just make the GatherLoanVisitor's visit_item method a no-op.

This indirectly implies that the example of #7740 is fixed:

    fn f() {
        static A: &'static char = &'A';
    }

Since we do not recurse into items, we no longer encounter `&'A'`.
Implement Stream automatically for Reader + Writer

This is consistent with the existing documentation but was not the
actual behaviour, which I've found to be rather a nuisance, actually.
str: rm `map_chars`, replaced by iterators

mapping a function against the elements should not require allocating a
new container, but `collect` still provides the functionality as-needed
Add an ``unreachable!()`` macro.

Rationale: having a function which fails means that the location of
failure which is output is that of the unreachable() function, rather
than the caller.

This is part of #8991 but is not all of it; current usage of
``std::util::unreachable()`` must remain so for the moment, until a new
snapshot is made; then I will remove that function entirely in favour of
using this macro.
regression test for #7740.
auto merge of #8990 : thestinger/rust/str, r=alexcrichton

mapping a function against the elements should not require allocating a
new container, but `collect` still provides the functionality as-needed
Factor shared code out into default GenericPath methods.
Minor doc cleanup.
auto merge of #8993 : pnkfelix/rust/fsk-fix-7740-dont-recur-on-items-during-gather-loans-of-block, r=nikomatsakis

Fix #7740

r? anyone, @nikomatsakis especially.
Rename str::from_bytes to str::from_utf8, closes #8985
auto merge of #8984 : chris-morgan/rust/auto-stream-impl, r=huonw

This is consistent with the existing documentation but was not the
actual behaviour, which I've found to be rather a nuisance, actually.
Replace os::glob with extra::glob, which is written in rust,
fixing issue #6100.
auto merge of #8992 : chris-morgan/rust/unreachable-macro, r=brson

Rationale: having a function which fails means that the location of
failure which is output is that of the unreachable() function, rather
than the caller.

This is part of #8991 but is not all of it; current usage of
``std::util::unreachable()`` must remain so for the moment, until a new
snapshot is made; then I will remove that function entirely in favour of
using this macro.
std::rt: Some I/O cleanup
std::rt: Add libuv bindings for getaddrinfo
std::rt: Add get_host_addresses function

This is a very simplistic method for host name resolution. It converts
a host name to a vector of IP addresses. Should be enough to get started.
auto merge of #8997 : fhahn/rust/issue_8985, r=catamorphism,brson

Patch for #8985
std: Remove push_fast from OwnedVector. Closes #8769

This is an unsafe implementation detail of `push`.
extra: Don't overcommit test tasks. Closes #8660

The new scheduler makes better use of threads than the old.
auto merge of #9004 : brson/rust/issue-8660, r=thestinger

The new scheduler makes better use of threads than the old.