Fix corner case in color_comparator() and clarify a comment.

If anum == 0 and bdenom == 0, we should check
  anum*sgn(adenom) < bnum*sgn(bdenom),
not
  anum*adenom < bnum*bdenom.