zlib: allow zero values for level and strategy
zlib: level can be negative
zlib: flush() needs _transform(), not write()
zlib: remove unused parameter
zlib: allow custom flush type for flush()
zlib: allow changing of level and strategy