Print longer paths to Cargo.toml on failure

Whenever possible, try to print a short path by using path_relative_from.

Closes #404
Support cross compiling to triples without dylibs

Discovering the prefix/suffix needs to understand that it's not actually
available.

Closes #442
Update docopt to fix -- option parsing

Closes #492
Fix the 32-bit linux travis bots
auto merge of #502 : alexcrichton/cargo/try-to-fix-travis, r=alexcrichton
auto merge of #468 : alexcrichton/cargo/issue-404, r=brson

Whenever possible, try to print a short path by using path_relative_from.

Closes #404
Don't fail!() when rustdoc fails to run

The return value of `err.output()` will be `None` if the rustdoc executable
failed to spawn, in which case we can give a more graceful error message.

Closes #481
Fix relative override paths

Relative paths are now considered relative to the directory containing the
`.cargo/config` file specifying the relative path.

I also merge ConfigValueValue into ConfigValue by moving the Path directly next
to the String that defined it so we can track which strings came from which
paths.

Closes #458
Pass native output directories of dependencies

This is often useful for picking up things like headers files from `*-sys`
packages when they had to compile locally (or perhaps for pkg-config).

Closes #449
auto merge of #469 : alexcrichton/cargo/issue-442, r=brson

Discovering the prefix/suffix needs to understand that it's not actually
available.

Closes #442
auto merge of #471 : alexcrichton/cargo/issue-449, r=brson

This is often useful for picking up things like headers files from `*-sys`
packages when they had to compile locally (or perhaps for pkg-config).

Closes #449
auto merge of #491 : alexcrichton/cargo/issue-481, r=brson

The return value of `err.output()` will be `None` if the rustdoc executable
failed to spawn, in which case we can give a more graceful error message.

Closes #481
auto merge of #475 : alexcrichton/cargo/issue-458, r=brson

Relative paths are now considered relative to the directory containing the
`.cargo/config` file specifying the relative path.

I also merge ConfigValueValue into ConfigValue by moving the Path directly next
to the String that defined it so we can track which strings came from which
paths.

Closes #458
auto merge of #495 : alexcrichton/cargo/issue-492, r=brson

Closes #492
Turn --git on by default for `cargo-new`.

This adds a command-line --no-git option to disable this behavior, as well as
adding a global config section for `git = false`. While I was at it I write some
documentation for the configuration format that cargo uses.