Add full flush support in zlib compression

This patch adds support for `Z_FULL_FLUSH` which is used in some streaming applications. From [zlib documentation](http://www.zlib.net/manual.html):
> All output is flushed as with `Z_SYNC_FLUSH`, and the compression state is reset so that decompression can restart from this point if previous compressed data has been damaged or if random access is desired.