Add a variant of home_for_io that consumes the handle. Refactor out common parts of the home_for_io variants.
Split out starting a listener from accepting incoming connections.

The Listener trait takes two type parameters, the type of connection and the type of Acceptor,
and specifies only one method, listen, which consumes the listener and produces an Acceptor.

The Acceptor trait takes one type parameter, the type of connection, and defines two methods.
The accept() method waits for an incoming connection attempt and returns the result.
The incoming() method creates an iterator over incoming connections and is a default method.

Example:

let listener = TcpListener.bind(addr); // Bind to a socket
let acceptor = listener.listen(); // Start the listener
for stream in acceptor.incoming() {
    // Process incoming connections forever (or until you break out of the loop)
}
Raise the file descriptor limits when running compiletest

We already do this for libstd tests automatically, and compiletest runs into the
same problems where when forking lots of processes lots of file descriptors are
created. On OSX we can use specific syscalls to raise the limits, in this
situation, though.

Closes #8904
Correctly determine OS to xfail in cross build
Modernise some Vim syntax highlighting.

- Remove highlighting of ``L"..."`` (obsolete syntax)
- Remove backslash at end of line being a line continuation always
  (obsolete syntax; this only affects comments, actually)
- Add highlighting for backslash at end of line and leading whitespace
  on the following line inside a string (a genuine line continuation)
Update a handful of keywords highlighted in Vim.

I added a few and removed a few and corrected a couple, all with
reference to the prelude. It ends up a slightly arbitrary decision
precisely what ends up in and what doesn't, unfortunately.
Highlight everything in the prelude in Vim.

This is a rather more extensive change than the last, but *ever* so much
easier to maintain reasonably, as there's then something to track
directly.
Update highlighting for prelude changes.
auto merge of #8954 : anasazi/rust/tcp-acceptor, r=catamorphism

The Listener trait takes two type parameters, the type of connection and the type of Acceptor,
and specifies only one method, listen, which consumes the listener and produces an Acceptor.

The Acceptor trait takes one type parameter, the type of connection, and defines two methods.
The accept() method waits for an incoming connection attempt and returns the result.
The incoming() method creates an iterator over incoming connections and is a default method.

Example:

```rust
let listener = TcpListener.bind(addr); // Bind to a socket
let acceptor = listener.listen(); // Start the listener
for stream in acceptor.incoming() {
    // Process incoming connections forever (a failure will kill the task).
}
```

Closes #8689
Fixes #8881. condition! imports parent's pub identifiers
Added ToStr impl for char
Changed ToStr impl for Ascii
auto merge of #8963 : jmgrosen/rust/issue-8881, r=alexcrichton
Silence fo+=j error for users of Vim < 7.3.541.
Test and document escaping on format!()
auto merge of #8942 : novalis/rust/fmt, r=alexcrichton
auto merge of #8943 : alexcrichton/rust/issue-8904, r=brson

We already do this for libstd tests automatically, and compiletest runs into the
same problems where when forking lots of processes lots of file descriptors are
created. On OSX we can use specific syscalls to raise the limits, in this
situation, though.

Closes #8904
auto merge of #8950 : sanxiyn/rust/cross-xfail, r=brson
auto merge of #8951 : chris-morgan/rust/vim-update-highlighting, r=alexcrichton

Several changes with appropriate commit messages to explain them.

The final two commits, highlighting everything in the prelude, may be a little controversial. I think it's the sensible way forward with it.
Don't die with an ICE on a blank library name

Closes #5425
auto merge of #8960 : Kimundi/rust/master, r=alexcrichton

Changed ToStr impl for Ascii
Added ToStr impl for char