### Godot version

4.1

### System information

Windows

### Issue description

Being able to have multiple cursors similarly to vscode is a great feature, however it's only possible to add carets, not remove them. By left clicking you can remove all extra cursors but you cannot remove a specific one so after selecting multiple lines a single missclick, you have to reselect them all again. Looking at the original pr there was a remove_caret function added so it would make sense to be able to remove carets when clicking again, like in vscode.

![image](https://github.com/godotengine/godot/assets/19669673/3867c00e-9faa-4429-9c6d-f2d6d3883044)


### Steps to reproduce

- Alt click to add multiple carets
- Alt click on the same position again
- Nothing happens

### Minimal reproduction project

N/A
} else {
		placeholder_data_buf->set_direction((TextServer::Direction)text_direction);
	}
	placeholder_data_buf->set_preserve_control(draw_control_chars);
	placeholder_data_buf->add_string(placeholder_text, theme_cache.font, theme_cache.font_size, language);
	placeholder_bidi_override = structured_text_parser(st_parser, st_args, placeholder_text);
	if (placeholder_bidi_override.is_empty()) {
		TS->shaped_text_set_bidi_override(placeholder_data_buf->get_rid(), placeholder_bidi_override);
	}
	if (get_tab_size() > 0) {
		Vector<float> tabs;
		tabs.push_back(theme_cache.font->get_char_size(' ', theme_cache.font_size).width * get_tab_size());
		placeholder_data_buf->tab_align(tabs);
	}
	
	const int wrap_amount = placeholder_data_buf->get_line_count() - 1;
	placeholder_line_height = theme_cache.font->get_height(theme_cache.font_size);
	for (int i = 0; i <= wrap_amount; i++) {
		placeholder_line_height = MAX(placeholder_line_height, placeholder_data_buf->get_line_size(i).y);
	}
	
	placeholder_max_width = placeholder_data_buf->get_size().x;
	
	placeholder_wraped_rows.clear();
	for (int i = 0; i <= wrap_amount; i++) {
		Vector2i line_range = placeholder_data_buf->get_line_range(i);
		placeholder_wraped_rows.push_back(placeholder_text.substr(line_range.x, line_range.y - line_range.x));
	}
}
void TextEdit::_update_theme_item_cache() {