Beef up some various documentation
Add a new CARGO_MANIFEST_DIR environment variable

All subprocesses will now be invoked with CARGO_MANIFEST_DIR pointing at the
root of the source directory that they are working on (compiling). This commit
also reorganizes the version environment variables to use the new
infrastructure.

Closes #433
auto merge of #434 : alexcrichton/cargo/issue-433, r=huonw

All subprocesses will now be invoked with CARGO_MANIFEST_DIR pointing at the root of the
source directory that they are working on (compiling). This commit also
reorganizes the version environment variables to use the new infrastructure.

Closes #433
cargo-run: support target and release the same as cargo-build
Use "0.0.1" instead of "0.1.0" for version numbers
Decode directly into a semver::Version

This generates errors for malformed semver versions during the decoding process
rather than later in the convertion to a package id. This also cuts down on the
large number of derived traits to only what's necessary.

Closes #54
Fix building with current rust
Print out the rustc version before each build
Fix a flaky test while the compiler is changing
auto merge of #450 : alexcrichton/cargo/fix-cargo, r=alexcrichton
Add a --no-run option to `cargo test`

This allows tests to be built, but not run.
Fix `cargo run` for renamed bin targets
auto merge of #419 : alexcrichton/cargo/issue-406, r=brson

This allows tests to be built, but not run.

Closes #406
auto merge of #421 : alexcrichton/cargo/issue-418, r=wycats
Remove all subcommand executables

This commit removes all distributed executables except for `cargo`. All
builtin subcommands are implemented through library calls, and the fallback
methods are retained to maintain extensability through new subcommands.

Closes #393
auto merge of #420 : alexcrichton/cargo/issue-393-2, r=brson

This commit removes all distributed executables except for `cargo`. All
builtin subcommands are implemented through library calls, and the fallback
methods are retained to maintain extensability through new subcommands.

Closes #393
Add a `harness` manifest option

This option is used to disable the --test flag to rustc for a test or benchmark
target in order to signal that the binary already knows how to run the testing
infrastructure.

The test/benchmark is still compiled and run as usual, and the exit code is
expected to reflect the result of the test/benchmark.

Closes #431
Help debug a flaky windows test
auto merge of #435 : alexcrichton/cargo/issue-431, r=brson

This option is used to disable the --test flag to rustc for a test or benchmark
target in order to signal that the binary already knows how to run the testing
infrastructure.

The test/benchmark is still compiled and run as usual, and the exit code is
expected to reflect the result of the test/benchmark.

Closes #431
Implement cargo-package

This command will assemble the current package into a tarball ready for
uploading to the cargo registry. Currently no further verification is done
beyond packaging the local repository into a tarball, but in the future this
could execute other operations such as api stability tools.