Tweaks to gcz compression / decompression

This makes it so you can cancel either process, it does after all take quite some time.  It also improves the speed of compression and decompression.

I've also found that std::fill(), at least via MSVC, is significantly slower than memset() (where equivalent.)  It seems like changing this one would give up to another 6% gain for Wii isos:
https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/DiscIO/DiscScrubber.cpp#L135

Also, adding cancel results in a Close button when compression finishes, which is obviously significantly better UX than having to click X.

-[Unknown]
Couldn't `z_stream z = {};` just be used here to zero initialize the struct?