use tar's compress program option instead of a pipe

This allows us to avoid the issues that some badly created tar files
cause where tar closes its stdin pipe while the decompressor still has
data remaining to be written to its stdout pipe causing the decompressor
to be killed by SIGPIPE. See bug #309001 for the historical discussion.

An example tarfile still used that causes this situation is
cyrus-sasl-2.1.26.tar.gz from the related cyrus-sasl pkg.