colour <-reduce: factor=[ -> 0.0..1.0] ->
colour Return a lighter (colour<-hilite)
or darker (colour<-reduce)
variant. Used by class elevation to derive the lit and
shadow sides of a 3-D box. 0.0 returns the
colour unchanged; 1.0 returns white (colour<-hilite)
or black (colour<-reduce).
Defaults come from the hilite_factor / reduce_factor
class variables.
The derived colour is associated with the original; asking for the
same modification again returns the cached object, and destroying the
original lets the derivative go.