tests/simple: Don't call gegl_color_new until after gegl_init

If you call gegl_color_new before gegl_init, it will now try to
call babl before babl was initialized and segfault.
operations: Support CMYK in jpg-load

Before would fail with "attempted to load unsupported JPEG (components=4)"
Also changes the format selection logic to be based on the out_color_space
in JPEG, instead of deducing it from the number of channels.

Note: uses the 'naive' CMYK support in BABL, which looks to
match what other viewer programs like Firefox and Eye of Gnome does.
operations: Move registration of CMYK u8 format into Babl

JPEG CMYK support now wuntime-dependent on
babl >= 21571c7bbd3a27bd78d78598a6732741a95fb265
operations: Fix compile warning in jpg-load

C90 >-<
operations/workshop: Prepare for supporting more color stops in gradient-map
operations/workshop: Support multiple stops in gradient-map

For now all stops must be in acending order, and the first stop
stop1 will always act as if it has value 0.0
operations/workshop: Allow to specify "srgb" for operating in gamma-encoded space

This is usually what people expect coming from PS etc.
Also moves the gradient calculation logic into prepare(),
as that is guaranteed to be called on all property changes.
Could maybe even drop it, as most changes will invalidate cache...
operations/workshop: Remove caching in gradient-map

Rely on prepare() to be called not-too-often instead
Fixes one bug in cache invalidation when setting multiple properties,
which caused some tests to fail in imgflo