fix: rename overwrites existing destination (EPERM → remove + rename)
gkfs_rename returned EPERM when the destination already existed, violating POSIX semantics that require rename(old, new) to atomically replace new. Fix: remove the destination first, then proceed with the rename.