### 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
GDCLASS(TileMap, Node2D);
public:
	class TerrainConstraint {
	private:
		const TileMap *tile_map;
		Vector2i base_cell_coords;
		int bit = -1;
		int terrain = -1;
		int priority = 1;
	public:
		bool operator<(const TerrainConstraint &p_other) const {
			if (base_cell_coords == p_other.base_cell_coords) {
				return bit < p_other.bit;
			}
			return base_cell_coords < p_other.base_cell_coords;
		}
		String to_string() const {
			return vformat("Constraint {pos:%s, bit:%d, terrain:%d, priority:%d}", base_cell_coords, bit, terrain, priority);
		}
		Vector2i get_base_cell_coords() const {
			return base_cell_coords;
		}
		bool is_center_bit() const {
			return bit == 0;
		}
		HashMap<Vector2i, TileSet::CellNeighbor> get_overlapping_coords_and_peering_bits() const;
		void set_terrain(int p_terrain) {
			terrain = p_terrain;
		}
		int get_terrain() const {