fixed assertions.
renamed foundation::ciexyz_to_spectrum() to foundation::ciexyz_reflectance_to_spectrum().
use separate RGB color matching functions for reflectance and illuminance, and clamp reflectance to [0, 1].
robust handling of invalid samples.
fixed bluish tint.

modified foundation::linear_rgb_illuminance_to_spectrum() to use the same RGB color matching functions as foundation::linear_rgb_reflectance_to_spectrum().
foundation::linear_rgb_illuminance_to_spectrum() continues to clamp the output value to [0, 1], unlike foundation::linear_rgb_reflectance_to_spectrum() which only clamps to 0.
decreased default iteration limits to from 10000 to 1000.