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
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
Fixed makefile to point to the new llvm build directory.
Un-hork the bots by removing intermediate files

The new glob tests created tmp/glob-tests as a directory, but the never removed
it. The `make clean` target then attempted to `rm -f` on this, but it couldn't
remove the directory. This both changes the clean target to `rm -rf` tmp files,
and also alters the tests to delete the directory that all the files are added
into.