Compress PNG encoder output with fixed-Huffman DEFLATE + LZ77 master
`zlib_compress_data` previously emitted only stored DEFLATE blocks, so `encode_png_rgba` produced files roughly the same size as the raw RGBA buffer — every 800x600 e2e screenshot was ~1.92 MB regardless of content. Add a fixed-Huffman DEFLATE encoder (RFC 1951 §3.2.6) in `we-image` with a hash-chain LZ77 match finder (32-entry chain, 32 KB window, 3-byte minimum match, 258-byte maximum match). Rewrite `zlib_compress_data` to wrap the new encoder in a zlib stream with the default-compression FLEVEL header. After this change, an 800x600 uniform-white screenshot encodes to ~1.4 KB, smoke-suite screenshots fall from ~1.92 MB to 14–27 KB each, and the smoke artifacts directory shrinks from ~23 MB to ~255 KB. The existing PNG decoder round-trips the new output unchanged. Closes the "PNG encoder uses stored (uncompressed) DEFLATE blocks" issue. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>