Ignore EPERM when scanning for packages

We won't make much progress reporting the error back up the chain, so we may as
well carry on!
Compile deps with optimizations for benches

Previously only the local package was erroneously compiled with optimizations.

Closes #728
Fix typo in src/doc/manifest.md
auto merge of #747 : kballard/cargo/manifest_typo_fix, r=alexcrichton
Stop testing 32-bit on travis

This has been broken for quite awhile now on 32-bit linux due to what looks like
libcurl going awry. This can be reactivated later, but consistently green travis
builds are more important right now.

Additionally, we already have coverage on the buildbots for 32-bit flavors of
architectures.
Fix some copy-paste errors in CLI help
auto merge of #752 : alexcrichton/cargo/typos, r=alexcrichton
line up the comments
auto merge of #754 : blaenk/cargo/whitespace, r=alexcrichton

I missed this when I changed the values to the defaults! It simply lines up the comment with the one above it.
auto merge of #750 : alexcrichton/cargo/no-more-travis-32, r=alexcrichton

This has been broken for quite awhile now on 32-bit linux due to what looks like
libcurl going awry. This can be reactivated later, but consistently green travis
builds are more important right now.

Additionally, we already have coverage on the buildbots for 32-bit flavors of
architectures.
cargo new: Don't create a git repo in subdirectory

Running `cargo new` to create a subpackage shouldn't create another
git repository if one exists in a parent directory.

Closes #664
auto merge of #755 : pwoolcoc/cargo/fix-664, r=alexcrichton
Two typos
auto merge of #761 : kali/cargo/patch-1, r=alexcrichton
auto merge of #718 : alexcrichton/cargo/issue-715, r=brson

We won't make much progress reporting the error back up the chain, so we may as
well carry on!

Closes #715
fix two warnings
Update how cargo talks to the registry

This commit includes a laundry list of updates and tweaks to reflect the current
API of the registry:

* `registry.host` has been renamed to `registry.index`
* New top-level manifest keys are now accepted:
  * `homepage` - url
  * `documentation` - url
  * `repository` - url
  * `description` - a markdown-less blurb
  * `license` - string (verified by the registry on upload)
  * `keywords` - string array
  * `readme` - string pointing at a file
* Authors are now uploaded to the registry
* The upload format to the registry has changed to a body json payload
* Unpacking tarballs respects the executable bit for scripts and such.
* Downloading now follows redirects to go to S3.
* The download URL for a package has changed slightly.
* Verify path dependencies have a version listed when being uploaded
* Rename `upload` to `publish`
* Rename `ops::cargo_upload` to `ops::registry`
* Add a new `registry` package for interoperating with the registry
* Add the ability to modify owners via `cargo owner`
* Add a `readme` key to the manifest, and upload its contents to the registry.
* Add the ability to yank crates and their versions
* When packaging a library, verify that it builds from the packaged source by
  unpacking the tarball and simulate running `cargo build` inside of it.
Remove the hokey add_lockfile_sources

This method shouldn't be necessary as it should be possible to simply add all
sources known in the lockfile to a package registry, and
core::{resolve, registry} should take care of weeding them out if necessary.

In the process of doing so, this actually ends up fixing a problem with
rewriting a dependency to a new one which shares transitive deps. Previously all
the transitive deps were updated, but now the transitive deps remain locked at
where they were previously locked.
Don't seed Registry with known source ids

In the normal case this isn't necessary due to the Registry dynamically
discovering sources when dependencies are queried for. Consequently there's no
need to register all these sources ahead-of-time, and it reduces the cognitive
load when thinking about sources and updates.
Don't de-dup added sources

We have a hash map on the side and a method that already aborts re-adding a
source if it was already added.