Nested set expressions are now flattened when safe.
Before hand, it was easy to hit Python's recursion limit when building large unions with ResultSet.union() (similar for intersect() and except()). Now the set expression constructor will try to flatten such expressions, which leads to simpler expression compilation. [r=jkakar,gabrielgrant] [f=242813]