### 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
void _move_dialog_confirm(const String &p_path);
	void _move_operation_confirm(const String &p_to_path, bool p_copy = false, Overwrite p_overwrite = OVERWRITE_UNDECIDED);
	void _tree_rmb_option(int p_option);
	void _file_list_rmb_option(int p_option);
	void _file_option(int p_option, const Vector<String> &p_selected);
	void _fw_history();
	void _bw_history();
	void _update_history();
	void _push_to_history();
	void _set_scanning_mode();
	void _rescan();
	void _toggle_split_mode(bool p_active);
	void _search_changed(const String &p_text, const Control *p_from);
	MenuButton *_create_file_menu_button();
	void _file_sort_popup(int p_id);
	void _folder_color_index_pressed(int p_index, PopupMenu *p_menu);
	void _file_and_folders_fill_popup(PopupMenu *p_popup, Vector<String> p_paths, bool p_display_path_dependent_options = true);
	void _tree_rmb_select(const Vector2 &p_pos, MouseButton p_button);
	void _file_list_item_clicked(int p_item, const Vector2 &p_pos, MouseButton p_mouse_button_index);
	void _file_list_empty_clicked(const Vector2 &p_pos, MouseButton p_mouse_button_index);
	void _tree_empty_click(const Vector2 &p_pos, MouseButton p_button);
	void _tree_empty_selected();
	struct FileInfo {
		String name;
		String path;
		StringName type;
		Vector<String> sources;
		bool import_broken = false;
		uint64_t modified_time = 0;
		bool operator<(const FileInfo &fi) const {