### Godot version

v4.0.beta11.official [91713ced8]

### System information

MX Linux 21

### Issue description

In Godot 3, TileMap had methods get_used_cells() and get_used_cells_by_id(). Godot 4's TileMap only has get_used_cells() and is missing get_used_cells_by_id().

get_used_cells_by_id() is highly useful in multiple cases, for example when trying to get all cells that are of road type, to randomly spawn a car.

Re-implementing get_used_cells_by_id() should be simple. The method could simply call get_used_cells(), and ignore all cells that are of the wrong ID.

### Steps to reproduce

N/A

### Minimal reproduction project

N/A
if (p_to_pos < 0) {
		p_to_pos = layers.size() + p_to_pos + 1;
	}
	ERR_FAIL_INDEX(p_to_pos, (int)layers.size() + 1);
	
	_clear_internals();
	layers.insert(p_to_pos, TileMapLayer());
	_recreate_internals();
	notify_property_list_changed();
	emit_signal(SNAME("changed"));
	update_configuration_warnings();
}
void TileMap::move_layer(int p_layer, int p_to_pos) {
	ERR_FAIL_INDEX(p_layer, (int)layers.size());
	ERR_FAIL_INDEX(p_to_pos, (int)layers.size() + 1);
	
	_clear_internals();
	TileMapLayer tl = layers[p_layer];
	layers.insert(p_to_pos, tl);
	layers.remove_at(p_to_pos < p_layer ? p_layer + 1 : p_layer);
	_recreate_internals();
	notify_property_list_changed();
	if (selected_layer == p_layer) {
		selected_layer = p_to_pos < p_layer ? p_to_pos - 1 : p_to_pos;
	}
	emit_signal(SNAME("changed"));
	update_configuration_warnings();
}
void TileMap::remove_layer(int p_layer) {