Compress takes input from io.Reader and deflates it using pgzip
to io.Writer. Data is compressed in blocksize (KB) chunks using
upto the number of CPU cores specified.
Decompress takes gzip compressed input from io.Reader and expands it using pgzip
to io.Writer. Data is read in blocksize (KB) chunks using upto the number of
CPU cores specified.
CheckOutputPath checks if output is attempting to write binary to stdout if
stdout is a device. Also checks if output path already exists. Allow
override via force option.
CheckPath validates the input file path. Checks on compression
if the path has the correct suffix, and on decompression checks
that it doesn't have the suffix. Allows override by force option.