cp -l in release/build fails when crossing file systems

In !1419 (merged), I added cp -l to release/build to fix #40338 (closed).

However, for some reason I thought the option meant "hard link files instead of copying when possible".

Instead, the command fails, which is problematic in our nightly build server, where we use a ramdisk.

So, what we can do is go back to the previous logic, and instead rm the target when they already exist. Or, simpler, rm -f.

We can use a combination of find -type d -exec mkdir -p $destdir/{} \;, find -type f -exec rm -f $destdir/{} \;, and find -type f -exec mv {} $destdir/{} \;