### 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
bool drop_override = Control::can_drop_data(p_point, p_data); 
	if (drop_override) {
		return drop_override;
	}
	return is_editable() && p_data.get_type() == Variant::STRING;
}
void TextEdit::drop_data(const Point2 &p_point, const Variant &p_data) {
	Control::drop_data(p_point, p_data);
	if (p_data.get_type() == Variant::STRING && is_editable()) {
		Point2i pos = get_line_column_at_pos(get_local_mouse_pos());
		int caret_row_tmp = pos.y;
		int caret_column_tmp = pos.x;
		if (selection_drag_attempt) {
			selection_drag_attempt = false;
			if (!is_mouse_over_selection(!Input::get_singleton()->is_key_pressed(Key::CTRL))) {
				
				set_caret_line(get_selection_to_line(), false, false);
				set_caret_column(get_selection_to_column());
				begin_complex_operation();
				if (!Input::get_singleton()->is_key_pressed(Key::CTRL)) {
					if (caret_row_tmp > get_selection_to_line()) {
						caret_row_tmp = caret_row_tmp - (get_selection_to_line() - get_selection_from_line());
					} else if (caret_row_tmp == get_selection_to_line() && caret_column_tmp >= get_selection_to_column()) {
						caret_column_tmp = caret_column_tmp - (get_selection_to_column() - get_selection_from_column());
					}
					delete_selection();
				} else {