### Godot version

v4.2.dev4.official [549fcce5f]

### System information

Godot v4.2.dev4 - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 6GB (NVIDIA; 31.0.15.3640) - Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz (4 Threads)

### Issue description

If the folder has assigned a color, the color is reset to default when the folder name is changed. Also subfolder colors are reset.

Also moving a folder resets its and its subfolders' colors.

I would expect that renaming or moving doesn't rest the folder color. Especially if you have a large folder structure with many folder levels and assigned colors, it is a unfortunate to have all colors reset if the top level folder is renamed.

### Steps to reproduce

1. Create folder structure 

```
level1
	level2
		level3
```

2. Set folder colors to `level1` and `level2.`

3. Rename `level1` to `foobar` 

-> All folders are now using the default color.


### Minimal reproduction project

N/A
String new_name = duplicate_dialog_text->get_text().strip_edges();
	if (new_name.length() == 0) {
		EditorNode::get_singleton()->show_warning(TTR("No name provided."));
		return;
	} else if (new_name.contains("/") || new_name.contains("\\") || new_name.contains(":")) {
		EditorNode::get_singleton()->show_warning(TTR("Name contains invalid characters."));
		return;
	} else if (new_name[0] == '.') {
		EditorNode::get_singleton()->show_warning(TTR("Name begins with a dot."));
		return;
	}
	String base_dir = to_duplicate.path.get_base_dir();
	
	if (to_duplicate.path.ends_with("/")) {
		base_dir = base_dir.get_base_dir();
	}
	String new_path = base_dir.path_join(new_name);
	
	Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
	if (da->file_exists(new_path) || da->dir_exists(new_path)) {
		EditorNode::get_singleton()->show_warning(TTR("A file or folder with this name already exists."));
		return;
	}
	_try_duplicate_item(to_duplicate, new_path);
	
	print_verbose("FileSystem: calling rescan.");
	_rescan();
}
void FileSystemDock::_overwrite_dialog_action(bool p_overwrite) {