Changed AStar.Solve to return a list of the actiona taken to reach the goal instead of the SearchNode that satisfied GoalTest. This is only for convenience, but is somewhat limiting (maybe we would like to know the pathcost?). PathCost and states visited can easily be recalculated in time linear to the path length.