A Survey on String Constraint Solving