Detect and fix up non-premultiplied cursor data

X server >= 1.18 already had code for this, but it only caught cases
where some pixels have 0 for alpha and non-0 for a non-alpha component.
Turns out some apps (e.g. the Civilization VI game) use
non-premultiplied cursor data which doesn't have such pixels, but can
still result in visual artifacts.

This uses the method suggested by Kamil in
https://bugs.freedesktop.org/92309#c19: check for pixels where any
colour component value is larger than the alpha value, which isn't
possible with premultiplied alpha.

There can still be non-premultiplied data which won't be caught by this,
but that should result in slightly incorrect colours and/or blending at
the worst, not wildly incorrect colours such as shown in the bug report
below.

v2:
* Disable the check with current xserver Git master, which already does
  the same check now.

Bugzilla: https://bugs.freedesktop.org/108355
Suggested-by: Kamil Páral <kamil.paral@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
11 jobs for fixup-non-premultiplied-cursors in 2 minutes and 8 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Build
passed #36597
xserver-1.13

00:00:32

passed #36598
xserver-1.14

00:00:32

passed #36599
xserver-1.15

00:00:33

passed #36600
xserver-1.16

00:00:54

passed #36601
xserver-1.17

00:00:55

passed #36602
xserver-1.18

00:00:54

passed #36603
xserver-1.18-clang

00:00:57

passed #36604
xserver-1.19

00:00:32

passed #36605
xserver-1.19-clang

00:00:33

passed #36595
xserver-1.20

00:00:43

passed #36596
xserver-1.20-clang

00:00:38