Improve operations on ColorTypes and add many tests

In addition to getting things working, this optimizes arithmetic
operations on AbstractRGBs to make them inline better and
reduce the number of multiplications.
Have colorim use ColorValues when appropriate; expand tests
More tests for core, and small fixes