Add cartesian products to all concrete set types
This adds a set Cartesian product on:
listgsetpropsetboolsetlistset
With the notation A × B at level 37. The notation is left associative so that lA × lB × lC : list (A * B * C). This includes corresponding specification lemmas and SetUnfoldElemOf instances. I only did a set level specification. There is no lemma in this MR describing the order for the Cartesian product on lists (the only one of those types where order is relevant)