### 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);
bool indeterminate = false;
		bool editable = false;
		bool selected = false;
		bool selectable = true;
		bool custom_color = false;
		Color color;
		bool custom_bg_color = false;
		bool custom_bg_outline = false;
		Color bg_color;
		bool custom_button = false;
		bool expand_right = false;
		Color icon_color = Color(1, 1, 1);
		Size2i cached_minimum_size;
		bool cached_minimum_size_dirty = true;
		HorizontalAlignment text_alignment = HORIZONTAL_ALIGNMENT_LEFT;
		Variant meta;
		String tooltip;
		ObjectID custom_draw_obj;
		StringName custom_draw_callback;
		struct Button {
			int id = 0;
			bool disabled = false;
			Ref<Texture2D> texture;
			Color color = Color(1, 1, 1, 1);
			String tooltip;
		};
		Vector<Button> buttons;
		Ref<Font> custom_font;
		int custom_font_size = -1;
		Cell() {