cartesian product of enums (ticket #442)
fixed Enum.product.count
anticipate @gasches critics by removing the polymorphic variant used in Enum.product
Enum.product.fast can be true in some cases
renamed Enum.product into Enum.cartesian_product
additional state in the state machine (deal with termination)
more tests for enum.cartesian_product
more tests for batEnum.cartesian_product
Merge pull request #483 from c-cube/enum-product

cartesian product of enums (ticket #442)