Added wrapper method (solve), which takes a solver and a problem, and returns the the list of actions taken -- in sequence -- to solve the problem (or None if no solution was found).