Draft: Introduce client level scale overrides
This allows for compositor managed different co-ordinate space between kwin's logical co-ordinate space and a client's logical co-ordinate space.
When combined with a modified kwin!1959 (closed) this allows us to set a DPI in xrdb and mark all xwayland windows as being 2x (or other) and avoid upscales for xwayland clients in a way that doesn't impact other wayland clients or require third-party changes. Any use of fractional values is in layers we control instead of over the wire.
kwayland-server is the right place for this abstraction as we need Outputs to differ on a per resource basis. Something we can't control from within kwin.
Right now only protocols used by Xwayland are covered. If we covered remaining protocols we can offer user-control on all remaining clients which could open up other possibilities such as a user controlled dynamic resizing, or adapt to possible future protocol changes with wayland scaling.
Relevant kwin code can be found in the branch "work/x11-scale-opt-out".