GfxCal*ColorSpace: introduce Bradford transform for chromatic adaptation
This brings the lcms2 code path and the non-lcms2 code path closer to each other in terms of color reproduction. So far the following points were missing, which are now added in this commit:
- Both code paths did either not adjust for a different source white point at all (lcms2 code path) or did some simple scaling. The code has now been adjusted to use the Bradford transform to adapt to either the D50 or D65 white point, depending on the code path.
- The non-lcms2 code path so far used the square root as an approximate gamma function. The correct sRGB gamma function has now been added.
Draft status: This has been mostly submitted here to not be forgotten. Cf. the discussions linked above, where it was made clear that this does not pass the bar to be considered being merged anytime soon. Despite that the patches should be fine.