### 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
cell_to_quadrant.set_origin(map_to_local(E_cell) - quadrant_pos);
				rs->canvas_item_add_set_transform(p_quadrant->debug_canvas_item, cell_to_quadrant);
				for (int layer_index = 0; layer_index < tile_set->get_navigation_layers_count(); layer_index++) {
					Ref<NavigationPolygon> navpoly = tile_data->get_navigation_polygon(layer_index);
					if (navpoly.is_valid()) {
						PackedVector2Array navigation_polygon_vertices = navpoly->get_vertices();
						for (int i = 0; i < navpoly->get_polygon_count(); i++) {
							
							Vector<int> polygon = navpoly->get_polygon(i);
							Vector<Vector2> vertices;
							vertices.resize(polygon.size());
							for (int j = 0; j < polygon.size(); j++) {
								ERR_FAIL_INDEX(polygon[j], navigation_polygon_vertices.size());
								vertices.write[j] = navigation_polygon_vertices[polygon[j]];
							}
							
							Color random_variation_color;
							random_variation_color.set_hsv(color.get_h() + rand.random(-1.0, 1.0) * 0.05, color.get_s(), color.get_v() + rand.random(-1.0, 1.0) * 0.1);
							random_variation_color.a = color.a;
							Vector<Color> colors;
							colors.push_back(random_variation_color);
							rs->canvas_item_add_polygon(p_quadrant->debug_canvas_item, vertices, colors);
						}
					}
				}
			}
		}
	}
}
void TileMap::_scenes_update_dirty_quadrants(SelfList<TileMapQuadrant>::List &r_dirty_quadrant_list) {