Generate maximally distinct categorical colors that stay distinguishable under protanopia, deuteranopia, tritanopia — and optionally in grayscale.