Don't panic on unused overrides

This previously did a failing hashtable lookup when an `Option`-returning `get`
would suffice.
Cache build output in the target build directory

Placing it in the host directory may end up later on down the road causing a
spurious recompilation when one isn't necessary. I couldn't currently think of a
test case for this, as I don't think that this affects correctness.
Tweak doc style to match crates.io
auto merge of #829 : alexcrichton/cargo/less-paniks, r=brson

Unused overrides previously led to a panic, and build cmd outputs were cached in the *host* location instead of the *target* location.
auto merge of #840 : alexcrichton/cargo/new-docs, r=brson

Rendered version: http://alexcrichton.com/cargo/

Closes https://github.com/rust-lang/crates.io/issues/14
Update the UI around using crates.io

Try to purge the word "registry" as much as possible in favor of just referring
to crates.io as "crates.io". This also enables the default index as being the
official rust-lang crates.io index.
Don't count custom compile scripts as targets.
auto merge of #827 : DiamondLovesYou/cargo/master, r=alexcrichton
Upgrade all deps to using build scripts
auto merge of #817 : alexcrichton/cargo/build-cmd, r=brson

This registers a new cargo snapshot as well as updates all dependencies to versions that are using build scripts. This means that overrides can now be used when looking for native libs for cargo!

This also modifies the behavior of `--enable-nightly` to add some extra configuration the buildbot needs to build cargo on CentOS.
Add the semicolon missing from the generated main.rs contents.

When you run `cargo new project-name --bin`, a project is generated by cargo
with a file, `src/main.rs`. This file has a main function with one line that
prints hello, world, but a semicolon is missing from the end of the
expression.
Fix OUT_DIR not being passed to rustdoc
The bundled gcc has moved locations
Fix a panic when building with build scripts

A package can be required to be built for both the host and target architectures
in some cases. For example a crate could be a normal dependency and a build
dependency. Cargo specially handles this case with respect to the build script
to ensure that the build script is run once per output platform.

Cargo also has logic, however, to run the build script only once when the target
and host platforms are the same. In this case Cargo previously wasn't filling in
the local build script output cache for both the host and target platforms, just
the target platform. This commit remedies this situation by ensuring that cargo
populates both the host and target locations in the cache.

Closes #838
auto merge of #857 : alexcrichton/cargo/update, r=alexcrichton

We don't want to use the bundled gcc and the bundling location has changed since when this was originally written.
Add `lto` option to profiles.

Closes #759.
auto merge of #844 : alexcrichton/cargo/less-registry, r=brson

Try to purge the word "registry" as much as possible in favor of just referring
to crates.io as "crates.io". This also enables the default index as being the
official rust-lang crates.io index.
Implement a command to list owners of a crate

Closes #858
Add documentation about crates.io usage
-l flag no longer pass to binaries if there's a library in the package