cartesian product in batSet

product for polymorphic sets, in lexicographic order. See issue #441
Merge pull request #499 from c-cube/set-product

cartesian product in batSet
better implementation of cartesian product in Set

See various implementation choices and benchmarks at
  https://github.com/ocaml-batteries-team/batteries-included/pull/499#issuecomment-31937964