* fix: write index.yaml file atomically This refactors the already-existing `AtomicWriteFile` utility to a central location and uses it to write index files atomically. This is done to avoid having half-written index files break client requests. Drive-bys: - Add test for AtomicWriteFile. - Add test IndexFile.WriteFile. Signed-off-by: rabadin <rvbadin@gmail.com> * Review fix: use RenameWithFallback instead of os.Rename Signed-off-by: rabadin <rvbadin@gmail.com> Co-authored-by: rabadin <rvbadin@gmail.com>