Add infrastructure to render shadows at the correct scale
Decorations provide shadows as an image with metadata to 9-tile it stretching the middle sections. If a shadow is stretched we end up sampling both the pixel that should represent the first pixel of the shadow but also the completely transparent pixel which should be where the window is. This leads to a visible gap.
This patch exposes the current devicepixelratio to clients so they can render exactly and avoid this.
To future proof and be as technically correct as possible all logical geometry is transferred to floating point.