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.
should probably use something like https://github.com/bruce/node-temp so I don't have to try to manually cleanup and the os can clean up eventually if the process crashes before we get a chance to clean it up