Converted colors from records to types

This gives us more control over what interfaces are implemented. Colors
are not generic collections, so some interfaces that make sense for
maps, don't make sense for colors.