Teach tar to auto-detect gzip-compressed archives for list and extract
operations while keeping archive creation explicit via -z/--gzip.
Route archive I/O through a shared compression helper that supports plain,
gzip, and zstd streams. This keeps the existing --zstd behavior while adding
gzip sniffing on reads and gzip encoding on writes when requested.
Add integration tests covering gzip create, list, extract, explicit -z on
extract/list, stdio round-tripping, invalid gzip input, and continued zstd
create/list/extract behavior.