return a new depth-first solver

Property definitions

ai $ SearchProblem :: depth_first
	# return a new depth-first solver
	fun depth_first: SearchSolver[S, A]
	do
		var todo = (new List[SearchNode[S, A]]).as_lifo
		var sol = new SearchSolver[S, A](self, todo)
		return sol
	end
lib/ai/search.nit:117,2--123,4