Safer IO

In particular, it opens only one IO for the zipper stream, and keeps a reference to it throughout.

Upon GC, the temporary IOs would actually close the zip streams, which caused all kinds of problems.