feat(cli): add --list / -l to print archive contents
Add a List action alongside Compress/Extract, wire --list / -l to
short-circuit through get_job (no output slot needed), and introduce
a default Compressor::list that bails for stream codecs.
Real implementations land on Tar (iterates Archive entries), Zip
(iterates ZipArchive::file_names — tempfiles non-seekable input),
and Pipeline (reuses the multi-stage pipe plumbing from extract:
outer layers decompress through an in-memory pipe into the innermost
container format, which lists).
Pipelines such as tar.gz therefore list correctly; single stream
codecs like gzip correctly fail with a specific message.
Covered by four integration tests in tests/list.rs.