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 
Minor issue. To reduce the # of layers. I would move line 19 up and combine lines 16, 19, 20.