Josh Triplett [Wed, 23 Nov 2016 08:46:58 +0000 (00:46 -0800)]
Rewrite to avoid invoking cargo directly on .crate contents
According to Cargo upstream, crates don't necessarily support running
cargo on them directly; a .crate file only includes enough to build as a
dependency or with "cargo install $crate", not as the top-level crate.
For instance, when building as the top-level crate, cargo expects
other crates referenced by workspaces to exist; otherwise, cargo ignores
workspaces.