Replaced Operations.getFiniteStrings() by an optimized FiniteStringIterator.
Avoid huge hash set of finite strings.
Avoid massive object/array creation during processing.
Iteration order changed, so when iterating with a limit, the result may differ slightly. Old: emit current node, if accept / recurse. New: recurse / emit current node, if accept.
The old method Operations.getFiniteStrings() still exists, because it eases the tests. It is now implemented by use of the new FiniteStringIterator.