Refactor ColorMaps and add BlackbodyColorMap

ColorMapFactories provide a consistent construction interface, allowing
ColorMaps to be constructed or copied without knowing the class at
compile-time.  Note: this approach feels sloppy and will probably need
to be refactored again in the future.

Also add BlackBody ColorMap.  Unfortunately, it does not produce the
desired look, probably because the fit disallows temperatures low enough
to produce reds.
Add ColorMap selector