A superclass for all iteration strategy nodes which are required to propagate
final completion events formed from multiple inputs. This is all the 'real'
iteration strategy nodes (but not the internal ones within the iteration
strategy object itself or the named input port nodes). All events are passed
to delegates in subclasses after which the completion state is checked, the
logic is as follows :
If the event received is final, that is to say it has an index of zero, and
final events have been received on all other inputs and at least one final
completion has been received then emit a final completion, otherwise do
nothing.
This means that subclasses should not emit final completion events themselves
- these will be handled by this superclass and emiting them in the subclass
will lead to duplicatation.