Fix for termination criterion issues

I encountered some minor problems while testing the new termination criterion for bulk iterations and I tried to fix them.

1. NullPointerException in OptimizerNode.mergeLists because child2open is not checked for being not null
2. Faulty chaining of root of termination criterion and root of step function. This happens if one uses the next partial solution as the termination criterion
3. BulkIterationNode tries to generate alternative plans for the termination criterion even if there are no plans for the next partial solution. If the termination criterion depends on the next partial solution, then the algorithm won't find a plan fulfilling the requirements and thus throw an exception.
4. Some of the termination criterion nodes are instantiated as a RegularPactTasks instead of IntermediateIterationTasks. This is caused by not setting the dynamic paths of the termination criterion.

I hope that I haven't broken anything while trying to fix the issues.