Add union support

Update the query processor to support UNION [ALL]  and correctly process the results. 

Key changes are 
- Refactor the two Union operators into a single UnionBase to capture and simplify the operators
- Add two new errors for incorrectly written unions. 
- The ASTStatementLoader to process the UnionNode -> Union process is brute force to manage to ensure the two streams of data into the Union operator have all the same (exact) types, and the output does too. 
- The OperatorAssembler doing the Union -> Union Operator also inserts sorts for the UNION processing 

Plus many new tests to verify the union works.