- canonical_color is now called normalize_color and can read its own output
- named_colors is a special kind of dict with its own constructor, because why not.