### 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
return NaturalNoCaseComparator()(name, fi.name);
		}
	};
	struct FileInfoTypeComparator;
	struct FileInfoModifiedTimeComparator;
	void _sort_file_info_list(List<FileSystemDock::FileInfo> &r_file_list);
	void _search(EditorFileSystemDirectory *p_path, List<FileInfo> *matches, int p_max_items);
	void _set_current_path_line_edit_text(const String &p_path);
	Variant get_drag_data_fw(const Point2 &p_point, Control *p_from);
	bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const;
	void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from);
	void _get_drag_target_folder(String &target, bool &target_favorites, const Point2 &p_point, Control *p_from) const;
	void _preview_invalidated(const String &p_path);
	void _file_list_thumbnail_done(const String &p_path, const Ref<Texture2D> &p_preview, const Ref<Texture2D> &p_small_preview, const Variant &p_udata);
	void _tree_thumbnail_done(const String &p_path, const Ref<Texture2D> &p_preview, const Ref<Texture2D> &p_small_preview, const Variant &p_udata);
	void _update_display_mode(bool p_force = false);
	Vector<String> _tree_get_selected(bool remove_self_inclusion = true) const;
	bool _is_file_type_disabled_by_feature_profile(const StringName &p_class);
	void _feature_profile_changed();
	static Vector<String> _remove_self_included_paths(Vector<String> selected_strings);
private:
	static FileSystemDock *singleton;
public:
	static FileSystemDock *get_singleton() { return singleton; }