ocaml-sql: compile aggregates over the rowid keyword
aggregate_compilable excluded any select whose projection, HAVING,
GROUP BY, or ORDER BY referenced rowid, so count(rowid) / min/max(rowid)
with a WHERE or GROUP BY were routed to the plain scan, which lowers the
aggregate as a scalar and raises "count() ... only valid as a select
item". But the aggregate scan already carries the implicit rowid column
(rowid_sentinel) like any base-table scan, so it binds rowid fine -- the
exclusion (a conservative default from the frontend/backend split) was
just steering these to the crashing path. catalog_aggregate still catches
Catalog.Ir.Unsupported for any genuinely uncompilable shape.
Drop the exclusion. count(rowid), min/max(rowid) over a filtered range,
count per group, GROUP BY rowid, and HAVING over an aggregate of rowid
now return the correct result (test landed in the preceding commit).