Add a --no-run option to `cargo test`

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

This allows tests to be built, but not run.

Closes #406
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.