### Godot version

v4.0.beta9.mono.official [e780dc332]

### System information

Linux Mint 20.3 Cinnamon, NVIDIA Corporation TU106 [GeForce RTX 2070]

### Issue description

When calling EraseButton on a TreeItem with exactly one button, the following error occurs:

`ERROR: Index p_idx = 2 is out of bounds (cells[p_column].buttons.size() = 1).`

After investigating the cause is clear, the Erase function is taking the button id and passing it to the button array as an index. So if the first button you add has the id 0, and the second 1, and so on, the function actually works fine. Conversely if I set the button id to 99 the error says .

`ERROR: Index p_idx = 99 is out of bounds (cells[p_column].buttons.size() = 1).`

I have to assume that expecting the user to track the order that the buttons are stored in the internal array is not intentional. Should be simple enough to fix.

### Steps to reproduce


Just create a Tree with a TreeItem and then add a button to it with an id that is != 0
Then try to remove that button.

### Minimal reproduction project

c# (sorry I don't really do GDScript)

var Tree = new Tree();
var root = Tree.CreateItem();
var item = Tree.CreateItem(root);
item.AddButton(0, someRandomTexture2D, 99);
item.EraseButton(0, 99);
void set_custom_minimum_height(int p_height);
	int get_custom_minimum_height() const;
	void set_selectable(int p_column, bool p_selectable);
	bool is_selectable(int p_column) const;
	bool is_selected(int p_column);
	void select(int p_column);
	void deselect(int p_column);
	void set_as_cursor(int p_column);
	void set_editable(int p_column, bool p_editable);
	bool is_editable(int p_column);
	void set_custom_color(int p_column, const Color &p_color);
	Color get_custom_color(int p_column) const;
	void clear_custom_color(int p_column);
	void set_custom_font(int p_column, const Ref<Font> &p_font);
	Ref<Font> get_custom_font(int p_column) const;
	void set_custom_font_size(int p_column, int p_font_size);
	int get_custom_font_size(int p_column) const;
	void set_custom_bg_color(int p_column, const Color &p_color, bool p_bg_outline = false);
	void clear_custom_bg_color(int p_column);
	Color get_custom_bg_color(int p_column) const;
	void set_custom_as_button(int p_column, bool p_button);
	bool is_custom_set_as_button(int p_column) const;
	void set_tooltip_text(int p_column, const String &p_tooltip);
	String get_tooltip_text(int p_column) const;
	void set_text_alignment(int p_column, HorizontalAlignment p_alignment);
	HorizontalAlignment get_text_alignment(int p_column) const;
	void set_expand_right(int p_column, bool p_enable);
	bool get_expand_right(int p_column) const;
	void set_disable_folding(bool p_disable);
	bool is_folding_disabled() const;