Windows: Fix error in `fs::rename` on Windows 1607
Fixes#137499
There's a bug in our Windows implementation of `fs::rename` that only manifests on a specific version of Windows. Both newer and older versions of Windows work.
I took the safest route to fixing this by using the old `MoveFileExW` function to implement this and only falling back to the new behaviour if that fails. This is similar to what is done in `unlink` (just above this function).
try-job: dist-x86_64-mingw
try-job: dist-x86_64-msvc