Return a buffered stdin by default.

One of the most common ways to use the stdin stream is to read it line by line
for a small program. In order to facilitate this common usage pattern, this
commit changes the stdin() function to return a BufferedReader by default. A new
`stdin_raw()` method was added to get access to the raw unbuffered stream.

I have not changed the stdout or stderr methods because they are currently
unable to flush in their destructor, but #12403 should have just fixed that.
Register new snapshots

This contains the fix for #4252 so we can start using methods in destructors.
configure: Accept LLVM 3.5 for building rust

This is the current head of LLVM, and we can indeed build with 3.5
mk: Fix --llvm-root finding tools

LLVM's tools are not contained in the local directory if --llvm-root is used by
the ./configure script. This fixes the installation path to be the root provided
by --llvm-root.
configure: Accept LLVM 3.5 for building rust

This is the current head of LLVM, and we can indeed build with 3.5
mk: Fix --llvm-root finding tools

LLVM's tools are not contained in the local directory if --llvm-root is used by
the ./configure script. This fixes the installation path to be the root provided
by --llvm-root.
Add a Travis-CI configuration for the repo

Travis CI provides an easy-to-use continuous integration infrastructure for
github repos to use. Travis will automatically test all PRs which are opened
against the rust repository, informing PR owners of the test results.

I believe that this will be a very convenient piece of infrastructure as we'll
be able to reduce the load on bors quite a bit. In theory all PRs opened have
had the full test suite run against them, but unfortunately this is rarely the
case (I'm a prime suspect). Travis will be able to provide easy and relatively
quick (~30min) feedback for PRs. By ensuring fewer failures on bors, we can
hopefully feed more successful jobs to bors.

Overall, I expect this to be very helpful for new contributors as well as
regular contributors as it's another layer of tests being run which will
hopefully catch things sooner. One of the most convenient parts about using
Travis is that there's very little burden in terms of maintenance, and if things
go wrong we can easily turn travis completely off.

Note that this is *not* the metric by which a PR will be merged with. Using
travis will purely be another source for running tests, we will continue to gate
all PRs on bors.
rustdoc: web: don't reset the search bar
backticks
rustc: Compress bytecode files in rlibs

These are only ever used with LTO, so there's no need for reading them to be
speedy.
mk: Don't install host rlibs

You rarely want to statically link against librustc and friends, so there's no
real reason to install the rlib version of these libraries, especially because
the rlibs are massive.
Test nested `proc` can access outer owned data

Fixes #10682
Represent lifetimes as Names instead of Idents

Closes #7743.
extra: rename Uuid::to_bytes() to as_bytes()
std: minor whitespace cleanup
syntax: Allow syntax extensions to have attributes
syntax: add syntax extension helper to make simple view items
std: rewrite Hash to make it more generic

This patch merges IterBytes and Hash traits, which clears up the
confusion of using `#[deriving(IterBytes)]` to support hashing.
Instead, it now is much easier to use the new `#[deriving(Hash)]`
for making a type hashable with a stream hash.

Furthermore, it supports custom non-stream-based hashers, such as
if a value's hash was cached in a database.

This does not yet replace the old IterBytes-hash with this new
version.
remove the TyDesc from TypedArena

This prevents generating visit glue when using a TypedArena. The problem
still exists for the untyped Arena.
test: 'ratcher' is not a word