+htp #16516 rewrite Deflate/GzipDecompressor as StatefulStage to defuse zip bomb

The GzipDecompressor now looks quite nice, very similar to the one before, but it was quite a ride to get there... Thanks to quite a good test coverage I'm somewhat confident it's now correct.

/cc @sirthias
I guess this can be inlined into a Pulling state, but probably doesn't worth to save this allocation (ByteStrings are allocated anyway)