Refactored color spaces so we have access to the static functions for conversion without needing to go through the expensive std::vector
Added isDirect to Colors::Space::* which tells us if a color space is backed by a single icc profile, and no other processing steps with some public method cleanups.
Removed Lab toXYZ and fromXYZ which were orphaned by previous commit.
Reformatted CairoTransform into generic SurfaceTransform so it can work with any memory surface of pixels and in a greater number of data formats.
Split out CMS transform class from SurfaceTransforms and use a base class Allowing for different assumptions with formatting and alpha premultiplication.
Add a forward.h header to make including color namespaces easier and cleaner.
Clean up generic testing utils for VectorIs Add colors and some better flexibility for arrays and vectors in testing.




















