### Godot version

4.2 dev1

### System information

Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 (NVIDIA; 30.0.15.1403) - Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 Threads)

### Issue description

Calling `Tree.propagate_check()` after an item is unchecked does not properly uncheck the parents. They are left in partially checked state.

It's easy to observe in theme editor:

https://github.com/godotengine/godot/assets/2223172/71d0479c-0a5e-48d3-957f-d90379a95c22



### Steps to reproduce

1. Edit a Theme resource
2. Go to Manage Items... menu
3. Go to Import Items tab
4. Unfold something
5. Check and uncheck a child checkbox

### Minimal reproduction project

N/A
}
TreeItem::TreeItem(Tree *p_tree) {
	tree = p_tree;
}
TreeItem::~TreeItem() {
	_unlink_from_tree();
	_change_tree(nullptr);
	validate_cache();
	prev = nullptr;
	clear_children();
}
void Tree::_update_theme_item_cache() {
	Control::_update_theme_item_cache();
	theme_cache.panel_style = get_theme_stylebox(SNAME("panel"));
	theme_cache.focus_style = get_theme_stylebox(SNAME("focus"));
	theme_cache.font = get_theme_font(SNAME("font"));
	theme_cache.font_size = get_theme_font_size(SNAME("font_size"));
	theme_cache.tb_font = get_theme_font(SNAME("title_button_font"));
	theme_cache.tb_font_size = get_theme_font_size(SNAME("title_button_font_size"));
	theme_cache.selected = get_theme_stylebox(SNAME("selected"));
	theme_cache.selected_focus = get_theme_stylebox(SNAME("selected_focus"));
	theme_cache.cursor = get_theme_stylebox(SNAME("cursor"));
	theme_cache.cursor_unfocus = get_theme_stylebox(SNAME("cursor_unfocused"));
	theme_cache.button_pressed = get_theme_stylebox(SNAME("button_pressed"));
	theme_cache.checked = get_theme_icon(SNAME("checked"));
	theme_cache.unchecked = get_theme_icon(SNAME("unchecked"));
	theme_cache.indeterminate = get_theme_icon(SNAME("indeterminate"));
	theme_cache.arrow = get_theme_icon(SNAME("arrow"));
	theme_cache.arrow_collapsed = get_theme_icon(SNAME("arrow_collapsed"));
	theme_cache.arrow_collapsed_mirrored = get_theme_icon(SNAME("arrow_collapsed_mirrored"));