Add command line help text for new subcommand 'cargo test'
Remove superfluous newline
auto merge of #75 : samebchase/cargo/add-help-for-test, r=alexcrichton
Account for trailing / in URLs when determining on-disk location. Fixes #84.

No tests because there's no preexisting network tests.
Add a hack to make github urls case-insensitive. Fixes #84
Add tests for URL canonicalization and canonicalize .git extensions
Future proof URL canonicalization tests
Merge pull request #88 from brson/fix

Basic URL canonicalization. Fixes #84
Revert "Basic URL canonicalization. Fixes #84"
Merge pull request #89 from rust-lang/revert-88-fix

Revert "Basic URL canonicalization. Fixes #84"
Revert "Merge pull request #89 from rust-lang/revert-88-fix"

This reverts commit 09e52c88d8bf729570e642af4e51c3985672b501, reversing
changes made to bc31d2a23b9ac6b06042e89c9e6ed98474859bf5.
auto merge of #90 : brson/cargo/fix, r=alexcrichton

This reverts commit 09e52c88d8bf729570e642af4e51c3985672b501, reversing
changes made to bc31d2a23b9ac6b06042e89c9e6ed98474859bf5.
Accept -j as a command-line parameter

This parameter will be used to control the number of concurrent builds that
cargo has executing.
Make CargoError inherit from Send

Due to a bug in the compiler, this also requires adding `+ Send` any time that
CargoError is mentioned. This change will allow errors to be sent across tasks.
Add a task-pool abstraction

The standard library also provides a task pool, but it's scheduling is not quite
the desired semantics. This task pool instead has all workers contend on a
shared queue to take work from rather than assigning new jobs to specific
workers for forever.
Add a dependency queue abstraction

This data structure is used to track when packages should be built and when they
become buildable. Additionally, it is used to propagate dirtiness throughout the
dependency graph.
Implement parallel compilation

This commit implements the -j flag in the `cargo_rustc` module, using the
primitives from the previous commits. The default parllelism is 1 (like with
make).

This change also brings proper freshness propagation instead of the hokey logic
of once something is compiled, "compile everything to the right as well".