Support for len() for a ProductSet

> I mean, it's correct, but i don't like it from a user's perspective.

Mathematics should be correct in first. Any only in second - make happy some users.

__len__, as explained above - make sense only for FiniteSet.

> its slightly more helpful than a "has no attribute" error.

It just misleading and wrong.  The cardinality is defined for any interval, __len__ can't be used as an interface for computing the cardinality.