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.