GROUP BY implementation

I also added comma_seperated_arguments function that extracted out the
argument parsing so that it can be shared by both group_by and order_by
I am not sure why you had such a long parse function when it can be
handled simply with "join(',')".