Don't rename a directory to a directory

Test by @EdShaw!

Closes #227
auto merge of #246 : alexcrichton/cargo/issue-227, r=wycats

Test by @EdShaw!

Closes #227
Filter the current package out of override paths

The current package being built should never be overridden, only its
dependencies.

Closes #225
Add `cargo new` to the `cargo help` message
auto merge of #248 : alexcrichton/cargo/issue-225, r=wycats

The current package being built should never be overridden, only its
dependencies.

Closes #225
Don't pass around Option<&[T]> for libs/bins

These ended up being Some([]) much of the time which was confusing because it
was being interpreted incorrectly. By passing just slices we know when there's
an element or not.
Fix dependencies during tests

A library target is needed for testing if any examples or integration tests are
being built, similarly with bin targets.
Fix integration tests with same names as libs

Use extra-filename mixins to ensure that these names never clash.
Ensure binaries are present for tests

Also make sure that binaries are named appropriately so they don't clash.
auto merge of #250 : alexcrichton/cargo/test-deps, r=wycats

* Ensure that binaries are present for integration tests (as well as libraries)
* Ensure that same-named binaries/libs/tests never clash. Examples are excluded for now because they should probably be built to a separate directory.
Fix `cargo test` with a dylib when run twice

The filename of the test for a dylib wasn't being calcuated correctly, so when
freshness was copying data over it ended up copying the same file twice.
Print unknown errors with --verbose
Only copy over the native output directory once

Previously it was copying once per target, not once per package.
auto merge of #249 : alexcrichton/cargo/fix-test-twice, r=wycats

These are both related to destroying the build directory and then recreating it.
Allow omitting part of the output of a process

Sometimes it's a pain to match the *exact* output of a process, so this adds a
placeholder where `[..]` indicates "any more input on this line". It can in
theory be used multiple times in a input string.
Ensure a message is printed on test failure

This previously relied on the test itself printing failure, but this is not
always the case for test which, for example, segfault. Instead this ensures that
*something* is always printed when a test fails, normally a short blurb about
what executable failed to run.
auto merge of #251 : alexcrichton/cargo/print-the-failure, r=wycats

This previously relied on the test itself printing failure, but this is not
always the case for test which, for example, segfault. Instead this ensures that
*something* is always printed when a test fails, normally a short blurb about
what executable failed to run.