Remove the use of manual memory management, convert to the use of `std::unique_ptr`.
Implement the `zstdCompress` and `zstdDecompress` functions. Also implement the `ZstdCompressedOstream` which is a `llvm::raw_ostream` which compresses data on the fly.