Add missing definition of checksum::no_length
Add fd_handle::open_directory()
Add fd_handle::mkdirat()
Add fd_handle::renameat()
Change file cache to write to a temporary file

This avoids permanent corruption of the cache file.