For portability the ThunkIo system is stream-based. But still need atomic operations.
- Copying files should be a first-class operation (use native Win32/Linux/macOS copy file operations provided by OS)
- Add a rename operation to ThunkIo, so that all writes go to a temp file and only at close (or a new
finalize_exn function) does the temp file get renamed.