use link/unlink instead of rename when using alien cache, for nfs' sake

We found when using an alien cache on NFS that a rename() from a second client's download of a cached object would trash the file handle that the first client had, giving the first client a stale file handle.  So when using alien cache, instead of doing a rename(), do a link() followed by an unlink() and ignore if link gets an EEXISTS error.