Put -L paths from scripts are in LD_LIBRARY_PATH

Like the old build command, this commit adds support for executables run by
cargo (and tests) to ensure that `-L` paths for a dynamic library are added to
LD_LIBRARY_PATH after a compilation is run.

Closes #915
Don't require a manifest for `cargo owner` commands
Ensure crates are tested after packaged

The `target` directory was erroneously being used from the crate root rather
than the root of the package directory itself, leading to packages not actually
testing what's precisely being published.
Specifically look in the home dir for configuration

Some workspaces, such as windows, often have the home directory not in the
hierarchy of where projects live, which means that configuration may not work by
default. The home directory, however, is already singled out for `cargo login`
and it's pretty semantically special, so this commit ensures that we always look
at the home directory for configuration if it exists.

Closes #933
Point to spdx.org/licenses in license field docs

I expected the comment about the whitelist to say where you could find the whitelist. This mirrors the information given in the error message if you specify an invalid license identifier.
Update to newest Rust
auto merge of #956 : jakub-/cargo/newest-rust, r=alexcrichton
Test source equality when locking dependencies

When applying the lockfile to a resolve graph, we need to take into account that
the listed source of dependencies can change over time, in which case we cannot
lock to the previous version but instead need to continue onwards with updating
the listed source.

Closes #951
Fix the root output directory when cleaning examples

This forgot to take into account the logic from some other locations, so I added
a helper method!

Closes #912
auto merge of #964 : carols10cents/cargo/patch-1, r=alexcrichton

I expected the comment about the whitelist to say where you could find the whitelist. This mirrors the information given in the error message if you specify an invalid license identifier.

I didn't make this a markdown link since it's within markdown within code within markdown, but I'm happy to edit this in any way you see fit.

Thank you!! :heart:
Add a `search` command to cargo
auto merge of #959 : jakub-/cargo/cargo-search, r=alexcrichton

This will currently call out to the registry service. In the future it may be sensible to add package descriptions to the git index so that search can be done offline.

Closes https://github.com/rust-lang/cargo/issues/925.
auto merge of #918 : alexcrichton/cargo/issue-912, r=brson

This forgot to take into account the logic from some other locations, so I added
a helper method!

Closes #912
auto merge of #919 : alexcrichton/cargo/issue-915, r=brson

Like the old build command, this commit adds support for executables run by
cargo (and tests) to ensure that `-L` paths for a dynamic library are added to
LD_LIBRARY_PATH after a compilation is run.

Closes #915
auto merge of #936 : alexcrichton/cargo/issue-923, r=brson

Closes #923
Upload dependency kinds to the registry

This ensures that the registry understands whether dependencies are build
dependencies or dev dependencies.

Closes rust-lang/crates.io#38
auto merge of #939 : alexcrichton/cargo/issue-38, r=brson

This ensures that the registry understands whether dependencies are build
dependencies or dev dependencies.

Closes rust-lang/crates.io#38
auto merge of #944 : alexcrichton/cargo/test-some-packages, r=brson

The `target` directory was erroneously being used from the crate root rather
than the root of the package directory itself, leading to packages not actually
testing what's precisely being published.
auto merge of #946 : alexcrichton/cargo/issue-933, r=brson

Some workspaces, such as windows, often have the home directory not in the
hierarchy of where projects live, which means that configuration may not work by
default. The home directory, however, is already singled out for `cargo login`
and it's pretty semantically special, so this commit ensures that we always look
at the home directory for configuration if it exists.

Closes #933
Don't fail `cargo login` if `~/.cargo` doesn't exist

Closes #927