[WIP][MAINT] Simplify the implementation of the 'Core.Color' module.

This PR improves the maintainability of this module.

The improvements are:
- the decomposition of the file 'Color.hpp' into several submodules:
  - 'Pixel.hpp' for the pixel class,
  - 'ChannelConversion.hpp' for the conversion of channel types to another,
  - 'ColorConversion.hpp' for colorspace conversion,
  - 'ColorSpace.hpp' for colorspace definition,
  - 'Typedefs' for convenient color typedefs.
- the addition of unit tests:
  - [x] 'Pixel' class,
  - [x] channel conversion,
  - [x] colorspace conversion,
  - [x] typedefs.
- the removal of (horrible !) macros for pixel-based operations by using templates instead.
- the substitution of 'ChannelTraits' and 'ColorTraits' classes by simpler template functions. These traits classes are not very useful and hard to read and doesn't have that much value.
For easier maintenance, break 'Image.hpp' into multiples header files will be good here:
- the 'Image' class.
- the 'ElementTraits', we might need to rename it.
- Image operations: color rescaling, color conversion, min and max values.