SolverRun: Extracted logic to SelectionCandidateProvider and merged rest into BacktrackingSolverRun