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.


I didn't realize this method was panic'ing with an error. We should definitely drop that; `fetchArtifact` (the caller of this method) already supports returning an error.