A {@link CompositeMoveSelector} that cartesian products 2 or more {@link MoveSelector}s.
For example: a cartesian product of {A, B, C} and {X, Y} will result in {AX, AY, BX, BY, CX, CY}.
Warning: there is no duplicated {@link Move} check, so union of {A, B} and {B} will result in {AB, BB}.
@see CompositeMoveSelector