Draft of k-coloring solver (rather than optimizer)
Redesign symmetry breaking: operate on next unsolved node

Instead of propagating purely lexicographically, use the same idea (taking the
lexicographically first unused color) but for the next unsolved node rather than
the lexicographically next node.

This results correct answers for many of the small test inputs but the running
times are still explosive even in the 20s and 50s.