Chainable unions

I'm working on a solution to the chainable unions problem. See also #98

I ended up making `Union` a `Unary` node. I could see a case for it being binary, but the solution seemed simpler this way.

I think I'm pretty close here, but I've got a single failing test for `WITH RECURSIVE`. I believe this is because it expects that a union will always be enclosed within parentheses, but I don't know if that's necessarily valid.

Let me know if I'm going down the right path?