Better Cartesian product support for big data.

Adds two functions:

total_product(): Calculate total permutations of a Cartesian product.
Used to get an integer of for iteration over with specific Cartesian
product

specific_product(): Extract single permutation of Cartesian product
iteration in an consistent speed regardless of list/set sizes. This is
better then the current intertools generator/yield when dealing with
(big data research) massive amounts of sets/permutations.