Parse escaped spaces in makefile dependencies

This means that if a project has a file with a space in the name it will
properly have its freshness calculated as opposed to always having it as a
candidate to be rebuilt.

Closes #648
Sort feature lists for fingerprint hashing

Otherwise the order was nondeterministic likely due to some hash map along the
way being used to deduplicate the set of features.

Closes #665
Remove the notion of "primary" from Context

Now that we have selective testing, this no longer makes any sense and all
queries to the path layout need to be based on the package being queried for.
This removes the primary flag from the Context, and requires that the `layout`
method have a local Package available

cc servo/servo#3580
auto merge of #675 : alexcrichton/cargo/fix-selective-test, r=brson

Now that we have selective testing, this no longer makes any sense and all
queries to the path layout need to be based on the package being queried for.
This removes the primary flag from the Context, and requires that the `layout`
method have a local Package available

cc servo/servo#3580
auto merge of #663 : alexcrichton/cargo/issue-648, r=brson

This means that if a project has a file with a space in the name it will
properly have its freshness calculated as opposed to always having it as a
candidate to be rebuilt.

Closes #648
Don't always run doc tests for the root package

When using `cargo test -p`, be sure to run only the doc tests for the package
actually being tested.

Closes #660
auto merge of #661 : alexcrichton/cargo/issue-660, r=brson

When using `cargo test -p`, be sure to run only the doc tests for the package
actually being tested.

Closes #660
Fix warnings for constant names
auto merge of #673 : alexcrichton/cargo/issue-665, r=brson

Otherwise the order was nondeterministic likely due to some hash map along the
way being used to deduplicate the set of features.

Closes #665
Make sure dev-deps are compiled for examples

Examples are classified as binaries, but do not have the `test` flag set on
their Profile. They do, however, have their environment set to `test`. Be sure
to place them into the `tests` bucket so they have development dependencies
available for their compilation.
auto merge of #671 : alexcrichton/cargo/issue-668, r=brson

Examples are classified as binaries, but do not have the `test` flag set on
their Profile. They do, however, have their environment set to `test`. Be sure
to place them into the `tests` bucket so they have development dependencies
available for their compilation.

Closes #668
Pass features along to rustdoc
auto merge of #676 : jdeseno/cargo/warnings, r=alexcrichton
Use the right package for doc test variables
auto merge of #679 : alexcrichton/cargo/fix-doc-test, r=brson
auto merge of #677 : sfackler/cargo/rustdoc-features, r=alexcrichton

Note that they won't actually work until rust-lang/rust#17834 lands.
Allow to invoke Cargo commands with name of target

Any rust Cargo projects (for example, https://github.com/Hoverbear/rust-rosetta) has multiple targets.
The --traget-name option for commands build, run, test or bench allows to debug only one target.