### 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
const Glyph *glyphs = TS->shaped_text_get_glyphs(rid);
					int gl_size = TS->shaped_text_get_glyph_count(rid);
					ofs_y += ldata->get_line_ascent(line_wrap_index);
					int first_visible_char = TS->shaped_text_get_range(rid).y;
					int last_visible_char = TS->shaped_text_get_range(rid).x;
					float char_ofs = 0;
					if (theme_cache.outline_size > 0 && theme_cache.outline_color.a > 0) {
						for (int j = 0; j < gl_size; j++) {
							for (int k = 0; k < glyphs[j].repeat; k++) {
								if ((char_ofs + char_margin) >= xmargin_beg && (char_ofs + glyphs[j].advance + char_margin) <= xmargin_end) {
									if (glyphs[j].font_rid != RID()) {
										TS->font_draw_glyph_outline(glyphs[j].font_rid, ci, glyphs[j].font_size, theme_cache.outline_size, Vector2(char_margin + char_ofs + ofs_x + glyphs[j].x_off, ofs_y + glyphs[j].y_off), glyphs[j].index, theme_cache.outline_color);
									}
								}
								char_ofs += glyphs[j].advance;
							}
							if ((char_ofs + char_margin) >= xmargin_end) {
								break;
							}
						}
						char_ofs = 0;
					}
					for (int j = 0; j < gl_size; j++) {
						int64_t color_start = -1;
						for (const Variant *key = color_map.next(nullptr); key; key = color_map.next(key)) {
							if (int64_t(*key) <= glyphs[j].start) {
								color_start = *key;
							} else {
								break;
							}