Change SearchNodeGenerator interface to return Iterable.

This change allows generators to be cheaper memory-wise when dealing with lots of child states. It was implemented mainly for use in SMAStarSolver, for which the algorithm is described using Iterables.