Implement most of Color, except for conversions.