Intersect and Except operators added

Set operators added with IT and .yaml tests
both operators have bool for making them able to do distinct operations as well as all operations
Both operators require that both input streams have been sorted prior to their execution(which has been implemented)


This is an example of why concrete nodes instead of a parameterized name is preferable. String comparison is much more sensitive to unintended breakage.

At a minimum, lets give SetPlanNode a Op enum. And put a `default` case that throws to make it more obvious.