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

Generally I'm of the belief that tests should be:
 * concise
 * clear
 * as logic free as possible

> Also, the ExpectArtifactDetails function that was here previously would only ever be useful within this single test function.

That seems completely irrelevant.  The question should always be, does this function increase code clarity and comprehensibility?