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.


@grobie It's the recommended way to do these kinds of tests: https://code.google.com/p/go-wiki/wiki/TableDrivenTests

Also, the ExpectArtifactDetails function that was here previously would only ever be useful within this single test function.