This writer is used between the actual writer and the
ZlibEncoder and has the job of packaging the compressed
data into a PNG chunk, based on the image metadata
This enum is used to be allow the StreamWriter to keep
its inner ChunkWriter without wrapping it inside a
ZlibEncoder. This is used in the case that between the
change of state that happens when the last write of a frame
is performed an error occurs, which obviously has to be returned.
This creates the problem of where to store the writer before
exiting the function, and this is where Wrapper comes in.