### 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
struct TileMapQuadrant {
	struct CoordsWorldComparator {
		_ALWAYS_INLINE_ bool operator()(const Vector2i &p_a, const Vector2i &p_b) const {
			
			if (p_a.y == p_b.y) {
				return p_a.x > p_b.x;
			} else {
				return p_a.y < p_b.y;
			}
		}
	};
	
	SelfList<TileMapQuadrant> dirty_list_element;
	
	int layer = -1;
	Vector2i coords;
	
	RBSet<Vector2i> cells;
	
	
	RBMap<Vector2i, Vector2i> map_to_local;
	RBMap<Vector2i, Vector2i, CoordsWorldComparator> local_to_map;
	
	RID debug_canvas_item;
	
	List<RID> canvas_items;
	HashMap<Vector2i, RID> occluders;
	
	List<RID> bodies;