A Survey on Vertex Coloring Problems