Class CartesianProduct<T>

A cartesian product between two lists A and B is the set of all ordered pairs
of the elements of both sets.
See http://en.wikipedia.org/wiki/Cartesian_product for more details.
Since the order of the elements matters; Lists are used instead of Sets.
Example:
A = {1, 2, 3}
B = {4, 5}
The ordered pairs are {1, 4}, {1, 5}, {2, 4}, .., {3, 5}