Combinations on collection

Some addition to the standard 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) make reduce the usage of simple methods that could have abstract the underlying implementation.