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.
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.
Factor shared code out into default GenericPath methods.
Minor doc cleanup.
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.
Don't run lint over gyp files (they just fail anyway)
auto merge of #9011 : alexcrichton/rust/fix-lint, r=thestinger
auto merge of #8909 : lkuper/rust/default-methods-refactor, r=alexcrichton

 (cc: #3227)

Parts I'm unsure about and would like a reviewer to look at are:

  * `pub trait GenericPath : Clone + Eq + ToStr` -- is this the done thing?  I've never done trait inheritance before, let alone from multiple traits, but it seemed to be necessary to be able to call all the methods we have to be able to call on `self`.

  * changing the argument of `components` from `self` to `&self`, and having it return `self.components.clone()` instead of `self.components`; this was necessary to avoid move errors, but I'm not sure if it's the right thing.  (The default methods impls now all have to call `self.components()` instead of just referencing the field `self.components`.)
auto merge of #8914 : Dretch/rust/native-glob, r=alexcrichton

This is #8201 with a bunch of amendments to address the comments (and re-based).
std::rt: Fix addrinfo definition on BSD