Better Cartesian product support for big data.

Adds two functions:

total_product(): Calculate total permutations of a Cartesian product.
Used to get an integer for iteration over with Cartesian
specific_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.product() generator/yield when dealing with
(big data research) massive amounts of sets/permutations.