Support the HAVING clause

Support for `HAVING` is implemented in this PR by turning the bulk of the `oj/generators/where` function into a macro (dcd10e0), and then implementing `HAVING` using that macro. The syntax is very close to that of `(where)`, but `(having)` allows aggregates too.

Documentation, tests and validation updated too.