Search for Xwayland surfaces differently
Currently, we store all surfaces in a single list and use linear search to find the SurfaceInterface by its object id and client connection.
With this, we first search for the wl_resource object by its id. Once we have a wl_resource, SurfaceInterface::get(wl_resource) can be used.
The main advantage of the proposed solution is that we don't need to maintain a static list with all SurfaceInterface objects.