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
Update hammer.rs
Merge pull request #22 from alexcrichton/make

Allow executing an arbitrary command before building