Create a new pgsnapshot backend

This backend is intended for a pgsnapshot database loaded with osmosis.

It supports all non-history calls and passes all openstreetmap-api-testsuite
tests for non-history calls. The most notable history call is the 404 vs 410
error code of single-element fetch calls.

There are not yet unit tests for the backend.

cc @iandees 

openstreetmap-api-testsuite report
```text
Node diff tests        N history tests                          deleted                       status().is(410) didn't match: found 404
Node diff tests        N history tests                          deleted HEAD                  status().is(410) didn't match: found 404
Node diff tests        N history tests                          deleted tagged                status().is(410) didn't match: found 404
Node diff tests        N history tests                          deleted tagged HEAD           status().is(410) didn't match: found 404
Nodes diff tests       Ns history tests,Single content tests    deleted                       status().is(200) didn't match: found 404
Nodes diff tests       Ns history tests,Single content tests    deleted tagged                status().is(200) didn't match: found 404
Nodes diff tests       Ns history tests,Multi content tests     1 created 1 deleted tagged    status().is(200) didn't match: found 404
Way diff tests         W history tests                          deleted                       status().is(410) didn't match: found 404
Way diff tests         W history tests                          deleted HEAD                  status().is(410) didn't match: found 404
Way diff tests         W history tests                          deleted tagged                status().is(410) didn't match: found 404
Way diff tests         W history tests                          deleted tagged HEAD           status().is(410) didn't match: found 404
Ways diff tests        Ws history tests,Multi content tests     1 created 1 deleted tagged    status().is(200) didn't match: found 404
Relation diff tests    R history tests                          deleted                       status().is(410) didn't match: found 404
Relation diff tests    R history tests                          deleted HEAD                  status().is(410) didn't match: found 404
Relation diff tests    R history tests                          deleted tagged                status().is(410) didn't match: found 404
Relation diff tests    R history tests                          deleted tagged HEAD           status().is(410) didn't match: found 404
Relations diff tests   Rs history tests,Single content          deleted                       status().is(200) didn't match: found 404
Relations diff tests   Rs history tests,Single content          deleted HEAD                  status().is(200) didn't match: found 404
Relations diff tests   Rs history tests,Multi content tests     1 created 1 deleted           status().is(200) didn't match: found 404
Way Full diff tests    WF history tests                         deleted                       status().is(410) didn't match: found 404
Way Full diff tests    WF history tests                         deleted HEAD                  status().is(410) didn't match: found 404
```