change codes to short and simple, and change test codes to test nested tuples.

1. The codes are short and very simple than previous work.

2. Additionally, nested tuple can be used.
example syntax is like below.

qA.map(t=>((t.colA,t.colB),(t.colC,t.colD)).
  recursiveUnion(t=>Query(t).filter(...).map(t=>((t.colA,t.colB),(t.colC,t.colD))))

3. revert the Columnizer.scala file to 0ce4f51731528ac05737ba4ae67c7f22ebdefff9

please see the WithClauseTest.scala file.