shaders/colorspace: properly handle gamut mapping intents
In saturation intent, we want to directly stretch from the source mastering primaries to the target mastering primaries. In either intent, we want to apply gamut clipping etc. to be relative to the target mastering primaries, not the nominal encoding gamut.
Change the way this is handled. As an aside, also perform primary conversion in normalized space, which I believe fixes some sort of regression in the way gamut mapping is done.