### 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
_erase_quadrant(Q);
		} else {
			_make_quadrant_dirty(Q);
		}
		used_rect_cache_dirty = true;
	} else {
		if (!E) {
			
			E = tile_map.insert(pk, TileMapCell());
			
			if (!Q) {
				Q = _create_quadrant(p_layer, qk);
			}
			TileMapQuadrant &q = Q->value;
			q.cells.insert(pk);
		} else {
			ERR_FAIL_COND(!Q); 
			if (E->value.source_id == source_id && E->value.get_atlas_coords() == atlas_coords && E->value.alternative_tile == alternative_tile) {
				return; 
			}
		}
		TileMapCell &c = E->value;
		c.source_id = source_id;
		c.set_atlas_coords(atlas_coords);
		c.alternative_tile = alternative_tile;
		_make_quadrant_dirty(Q);
		used_rect_cache_dirty = true;
	}
}
void TileMap::erase_cell(int p_layer, const Vector2i &p_coords) {