(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.
It seems like the catalogs/host should still just return a single catalog map as the response. Seems to follow nodes/host as well https://docs.puppetlabs.com/puppetdb/2.2/api/query/v4/nodes.html