Add ROLLUP(), CUBE() and GROUPING SETS() & update tests.

Accepting contributions?