backend/drm: fix frame scheduling on secondary GPUs
There was a missing copy_drm_surface_mgpu call in drm_connector_schedule_frame so we asked for a pageflip with an unknown BO, resulting in ENOENT.
Additionally, this commit makes schedule_frame return a bool indicating failures. This allows schedule_frame_handle_idle_timer to only set frame_pending to true if a frame has been successfully scheduled. Thus, if a pageflip fails, rendering won't be blocked forever anymore.
In case a pageflip is already pending, true is returned because a frame has already been scheduled and will be sent sometime soon.
@JonnyMako @DawidLoubser @JonathanILevi Please test!
Fixes swaywm/sway#2800 Fixes #1328 (closed)