Artifacts can now be deployed from tarballs using all compression formats.

Tar doesn't have a mechanism to automagically determine compression encoding, instead using the filename to determine compression scheme. Since we're piping the artifact from HTTP directly into tar it's necessary for us to replicate this logic in order to utilize all tar compression schemes.

The supported compressions based on suffix are now no compression using ".tar", gzip compression using ".tar.gz" or ".tgz", and bzip compression using ".tar.bz2".

@bernerdschaefer @peterbourgon, this is ready for review.


```go
for _, test := range []struct{
    url string
    expectedPath string
    expectedCompression string,
} {
    {"http://foo/bar.tar", "/srv/harpoon/artifacts/foo/bar", ""},
    // ...
} {
    path, compression, err := getArtifactDetails(test.url)
    // ...
}
```