Made the ssh rename unlink the destination first.

It ignores not-found errors, if present, then proceeds with the rename. This brings its behavior into line with the filesystem behavior of just blowing away existing files without a care.

Added a test specifically for this case.