Flatten recursive AND composition in ThOr
Currently, the composition build by operator& in ThOr creates a tower in flame graphs with a height proportional to the number of predicates. To avoid this, the MR allows more than 2 predicates in the composite & operator, and when building expressions, takes advantage of this to 'flatten' the towers.