Combinations on collection

Some addition to the library for cartesian product and other combinatoric constructions.

Memory-efficient classes are proposed, however, the current limitation over the infinite types in RTA (and in the compilation strategies in --separate et --global) reduces the usage of simple methods that could have abstracted the underlying implementation.