Rewrite subsurface wrappers following the new design principles
This change rewrites implementation of subsurfaces with qtwaylandscanner and fixes various smaller issues, such as proper handling of position updates for subsurfaces in the desync mode and getting rid of QPointer in the public API.