Update all dependencies

This fixes some breaking changes with git2-rs, fixes a bug in tarball generation
from tar-rs, and fixes warnings with flate2-rs
Don't clone remote repos, use fetch instead

When cloning a remote repository, the default behavior of libgit2 is to only
update the local ref that's actually checked out, when we actually would prefer
to update all refs of the remote repo. This removes a call to clone() to a
init_bare() + fetch() which should update all refs accordingly

Closes #565
Fix bug in list_file_walk when cwd != path

Previously this was calling .is_file() on a relative path.  This would fail if
the path was not relative to the current working directory, for example when
fingerprinting a path dependency.
Test for build command fingerprints in path deps

This tests the fix for list_files_walk from #561.
Fix tests on Mac builders

Comparing URIs in /tmp was failing because of symlinks.
Fix list_files_git for paths in subdirs of a repo

list_files_git previously assumed that the package was always at the root of
the git repository.  This broke when trying to list files for a package in a
subdirectory of a repo, or in other cases, e.g. if the user's home directory
is a git repo.
Test for build commands in git subdirs
auto merge of #566 : alexcrichton/cargo/issue-565, r=brson

When cloning a remote repository, the default behavior of libgit2 is to only
update the local ref that's actually checked out, when we actually would prefer
to update all refs of the remote repo. This removes a call to clone() to a
init_bare() + fetch() which should update all refs accordingly

Closes #565
auto merge of #569 : alexcrichton/cargo/update-git2, r=brson

This fixes some breaking changes with git2-rs, fixes a bug in tarball generation
from tar-rs, and fixes warnings with flate2-rs
Better fix for tests on the Mac builders
auto merge of #561 : mbrubeck/cargo/list_file_walk, r=alexcrichton

Previously this was calling `.is_file()` on a relative path.  This would fail if the path was not relative to the current working directory, for example when listing files in a path dependency.
auto merge of #563 : mbrubeck/cargo/list-files-git, r=alexcrichton

`list_files_git` assumes that the package is at the root of the git repository. This breaks when trying to list files for a package in a subdirectory of a repo, or in other cases, e.g. if the user's home directory is a git repo.
Try to fix intermittent test failures

Travis is showing intermittent failures in
`test_cargo_compile_path_deps::path_dep_build_cmd` and
`test_cargo_compile_git_deps::git_dep_build_cmd` (added in #561 and #563).

I haven't managed to reproduce these failures locally, but I suspect the tests
are timing-sensitive.  This tries to guarantee that the timestamps during the
two operations can't be the same.
auto merge of #575 : mbrubeck/cargo/sleep, r=alexcrichton

Travis is showing intermittent failures in `test_cargo_compile_path_deps::path_dep_build_cmd` and `test_cargo_compile_git_deps::git_dep_build_cmd` (added in #561 and #563).

I haven't managed to reproduce these failures locally, but I suspect the tests are timing-sensitive.  This tries to fix the failure by sleeping for a second between the two operations.
Create hg repo with --hg flag on cargo new
Update to rust master
auto merge of #576 : alexcrichton/cargo/update, r=alexcrichton
Tweak the install script for windows nightlies
auto merge of #537 : markberger/cargo/510-hg-flag, r=alexcrichton

Allows the client to initialize a mercurial repo when creating a new cargo project with `cargo new --hg`. This would close #510.

This is my first time writing code in rust outside of a toy program so please feel free to tear it apart or suggest an alternative solution.
Rewrite git tests to not rely on the CLI

The CLI has started to have differences on windows than on other systems, and
instead of coding against multiple CLI versions, instead just rewrite everything
to use libgit2.