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.
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 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
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
Rename --name flags to --<target-name>

With #843 and #839 coming around the bend soon, the original decision for
`--name` everywhere isn't making as much sense, for consistence this is renaming
these flags back to `--<target-name>` for the respective targets.
Add zsh completion
Pin rustc to a date with known snapshots

I don't really expect all builders of cargo to be forced to use this rustc, and
I expect this to update frequently, but it will allow cargo PRs to land without
forcing a "put out the fires" fix for all nightly incompatibilities all at once.
This will allow rust upgrades to land separately and be reviewed separately.
auto merge of #859 : alexcrichton/cargo/issue-856, r=alexcrichton

I don't really expect all builders of cargo to be forced to use this rustc, and
I expect this to update frequently, but it will allow cargo PRs to land without
forcing a "put out the fires" fix for all nightly incompatibilities all at once.
This will allow rust upgrades to land separately and be reviewed separately.

Closes #856
auto merge of #842 : alexcrichton/cargo/issue-838, r=brson

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
Update Makefile.in for installation
auto merge of #862 : alexcrichton/cargo/issue-858, r=huonw

Closes #858
auto merge of #864 : tomaka/cargo/fix-814, r=alexcrichton

Close #814 

Unfortunately I don't really know how I'd add a test for this.
In order to try compile a library then a binary, you need to successfully compile the library, which means that you'd need to pass a valid value instead of just `-l foo`
Add Alex to the authors.
auto merge of #854 : alexcrichton/cargo/crates-io-dox, r=steveklabnik

Rendered: http://alexcrichton.com/cargo/crates-io.html

cc @steveklabnik, @wycats
Implement -l/--list for `cargo package`

This provides a method of listing the files that will be in a package without
actually creating one.

Closes #855
auto merge of #845 : jbranchaud/cargo/add-missing-semicolon-for-new-project-main, r=alexcrichton

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.