(PDB-1028) Make /v4/catalogs queryable

This expands the /v4/catalogs endpoint to have full query and paging capacity,
and brings the catalogs endpoint into the query engine like the others, which
will be useful for syncing and future consistency. This patch changes the /v4/catalogs response to be a list and changes the response schema to include a hash key.
This older 'produce-body' code duplicates code in http/environments.clj & http/nodes.clj to some extent, should be named similarly at least.