Source::update takes mutable self
PathSource - load packages in update fn
Initial pass at boxed errors

The next step is to clean up the error handling in general so that
failure cases produce good errors.
Squelch warnings and minor cleanup
Add cargo_try!
Add FromError
Require human-tagging errors
Provide more context on process errors

When printing an error for a failed process execution, the stdout/stderr are
included for inspection.
Allow custom precompile commands

This commit enables support for custom precompilation commands to be triggered
before a package builds via rustc. The current interface is to have
`build = "foo"` in the `[project]` section of Cargo.toml and cargo will just
execute the exact command given.
Make CARGO_BIN_PATH optional for tests

This allows easier use of running tests by hand.
Run tests in parallel

Give each test is own root inside of the shared root to ensure that the tests
are still isolated from one another.
Add a .travis.yml