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 !1959 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.