Add Having and GroupBy

GroupBy is a quick implementation of the GROUP BY clause in SQL. The
current version is a simple passthrough implementation, while the final
version needs to determine whether the argument is a table name or
column name, and if it is a table name, it needs to expand into the
columns of that table as according to Dialect.ExpandGroupBy.

Having is the Where function, but for aggregation functions. Let's say
you had grouped by a column, but wanted to filter on a column that had
multiple values per value in the grouped column. That is when you need
to use the Having clause in SQL. It's a situational clause, but I don't
want to leave it out. You'll note that it has been planned for a while,
evidenced by it's commenting out in the interface.go file.