This pull request serves to bucket colors more intuitively to how humans perceive the difference in colors.
Currently, colors are bucketed via DeltaE or its Improved variant. DeltaE describes the mathematical difference between a color's components with another color. While this is mathematically accurate, it isn't perceptually accurate or intuitive to how humans would bucket colors. This results in bucketing where neighboring similar-appearing colors of the same hue are not bucketed due to differing lightness or colorfuless.
This PR proposes a specialized heuristic for bucketing colors. The general idea is is that humans tend to bucket (group) colors based on hue first, then lightness, then colorfulness. The latter two components may be swapped depending on results. The actual implementation idea is to put less weight on hue differences when doing diff(), though when walking through the code, diff() might actually make more sense to be named similar() based on what it is calculating. I will elaborate more on this once I better understand what the actual logic and intentions are.