WIP add full git support

Hey, wanted to open up this PR as a place to discuss the correct way to add git to this.

I spiked out an initial version that seems to work, but its not fully in memory and writes files temporarily to a temp directory.
We should continue detecting github urls in this manner and attempting to download them as a tarball.  We should have it fall back to attempting `git clone` whenever that fails.  The advantages are:

1. It's much faster
2. It allows people to install modules that have github dependencies even if the `git` command isn't available on their path.  This is a **really** useful feature.
3. It will make that test pass