[FLINK-1164] Gracefully handle empty (identity) iterations
[FLINK-1167] Handle unions at the root of the iteration

This closes #160