Update API docs and demos for recent worker improvements.

1. inflate/deflate are pure computations, no IO ops should be involved, so if the the 3rd-party libraries are implemented properly, they should not prevent the workers being GC'd.

2. By "pooling" do you mean sharing worker(s) between multiple ZipReader/ZipWorker instances? I don't think ZipReader.close() must be called in this case (actually it becomes a no-op again). E.g. we can tie a singleaton worker instance to the `zip` object, and all ZipReader instances will use it. This worker is created by createZipReader() if there is not one; and we add a `zip.closeReaderWorker()` method to wipe out the worker.