Add pgsnapshot backend files

The pgsnapshot backend is currently a duplicate of the apidb
writable backend and doesn't work on a pgsnapshot database
but the files are created.
Work in progress on pgsnapshot

stripped out most apidb specific sql

started on node call, worked most of the way there but looking at
how to avoid changeset tables
Remove more old apidb code
Work in progress on pgsnapshot backend
Refactor changeset_cache out of formatters

The changeset cache is now in the apidb-specific files, not the formatters.

There are still cache-specific details in main.cpp, but they don't impede
adding backends where the idea of a changeset cache is not applicable.