Rebased and added a change to clip the surface to the virtual screen rectangle, similar to what winex11 and wineandroid are doing. Some applications can create very large windows, and we only need the surface for the visible area. This will make it possible to factor out this behavior in win32u.