Bugfix: Support `self-update` on Windows

Restic `self-update` would fail in situations where the operating system
locks running binaries, including Windows. The new behavior works around
this by renaming the running file and swapping the updated file in place.

https://github.com/restic/restic/issues/2248
https://github.com/restic/restic/pull/3675
