cartesianProductForEach

Given a List of Iterables (over some X), execute the action for each combination of X values, one from each Iterable.

Use recursion for simplicity.