Text this: From Backtracking To Deep Learning: A Survey On Methods For Solving Constraint Satisfaction Problems