Refactor calls in SimpleSolver to the implementation. What I wanted to do was implement a timeout at that level because really the solver timeout should include stuff in the SolverImpl layers.
Refactor calls in SimpleSolver to the implementation. What I wanted
to do was implement a timeout at that level because really the solver
timeout should include stuff in the SolverImpl layers.

I had an implementation that used System.Threading.Task but the problem
with Tasks is you can't abort them and we also need a way of making a
new SolverImpl because we have no idea what state the SolverImpl is left
in. So for now I'll things as they are.

symbooglix/symbooglix,symbooglix/symbooglix,symbooglix/symbooglix