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
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
Update libssh2-static-sys
Tweak the install script for windows nightlies
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.