zlib: add adler32 and crc32

Continuing from #7213.

I couldn't think of a way to make a streaming interface without over-complicating the API, and it seems like something that could be easily implemented by a user-land library. But if someone can do some benchmarking and show that marshaling the running checksum between JS and C++ causes a significant performance loss, it will be a good reason to reconsider.

The proposed API is pretty straightforward. If it LGTY, I'll add docs and tests.