Compress ByteTensors in-memory using libpng.

Compress and decompress ByteTensors to/from ByteStorages using libpng. Can decompress into a given preexisting Tensor or create a fresh Tensor with a given a size.