Add `lto` option to profiles.

Closes #759.
Fix panic with plugins and build commands

This fixes a bug in cargo where target executables and libraries would be linked
to plugin native dependencies (not wanted!).

Closes #885
Tighten up the example for a build script
Merge branch 'lto' of https://github.com/BurntSushi/cargo into BurntSushi-lto
Polish off the LTO branch
One does not simply `make` Cargo

README fix with correct build instructions for building from source.
auto merge of #900 : steveklabnik/cargo/one_does_not_simply_make_cargo, r=alexcrichton

README fix with correct build instructions for building from source.
auto merge of #894 : alexcrichton/cargo/issue-888, r=brson
auto merge of #893 : alexcrichton/cargo/issue-885, r=brson

This fixes a bug in cargo where target executables and libraries would be linked
to plugin native dependencies (not wanted!).

Closes #885
auto merge of #895 : alexcrichton/cargo/BurntSushi-lto, r=brson

Closes #759, continuation of #790.
Warn about no useful metadata in `cargo package`.

A lack of description or any URL in a crate mean that crates.io can't
display *any* information about what it does other than the name, and
the only way for a human to work this out is to download the package as
a dependency locally, or to manually track down the repo/documentation.

This is rather unfriendly for people looking for packages, and the way
to fix it (adding some keys in Cargo.toml) is not immediately obvious.
Hence `cargo` can be a little intelligent and provide some guidance.

Closes #902.
Add test about missing all metadata when packaging.
Switch to using description + license.
Always warn on missing metadata in cargo publish.
Tweak text.