Fix git receive

The first commit adds some additional e2e tests that I found useful for rapidly testing git deployments. They are very similar to the Vagrant tests, except they don't cover sl-pm-install. As a bonus, they will actually run on our CI.

The second commit is the real fix, and I need some feedback on it. @kraman @sam-github  I'm reasonably happy with the User-Agent based git push detection, but I'm not sure about the tarball one. I left the existing `req.method === 'PUT'` check in place, but that seems highly likely to overlap with a REST style API that makes use of HTTP verbs.

Refs: #71 
I could combine 3, 7, and 10, but the rest are intentionally separated and ordered to optimize for caching when re-running the tests.