We no longer require the user to pass full compressed data in one go, instead the decompressor reports to the user if it needs more input or output space.
This allows compressing and decompressing with data using GZip headers and footers
This can be used to compress and decompress DEFLATE data either in raw or zlib format