### 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
set_file_list_display_mode(FileSystemDock::FILE_LIST_DISPLAY_LIST);
			_update_display_mode();
			if (EditorFileSystem::get_singleton()->is_scanning()) {
				_set_scanning_mode();
			} else {
				_update_tree(Vector<String>(), true);
			}
		} break;
		case NOTIFICATION_PROCESS: {
			if (EditorFileSystem::get_singleton()->is_scanning()) {
				scanning_progress->set_value(EditorFileSystem::get_singleton()->get_scanning_progress() * 100);
			}
		} break;
		case NOTIFICATION_DRAG_BEGIN: {
			Dictionary dd = get_viewport()->gui_get_drag_data();
			if (tree->is_visible_in_tree() && dd.has("type")) {
				if (dd.has("favorite")) {
					if ((String(dd["favorite"]) == "all")) {
						tree->set_drop_mode_flags(Tree::DROP_MODE_INBETWEEN);
					}
				} else if ((String(dd["type"]) == "files") || (String(dd["type"]) == "files_and_dirs") || (String(dd["type"]) == "resource")) {
					tree->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM | Tree::DROP_MODE_INBETWEEN);
				} else if ((String(dd["type"]) == "nodes")) {
					holding_branch = true;
					TreeItem *item = tree->get_next_selected(tree->get_root());
					while (item) {
						tree_items_selected_on_drag_begin.push_back(item);
						item = tree->get_next_selected(item);
					}
					list_items_selected_on_drag_begin = files->get_selected_items();