Add new database layer for SysMeta
Add new database layer for SysMeta

New implementation of most of the database functionality related to
System Metadata.

GMN maintains sysmeta XML docs in the filesystem, with a relational db
copy of the information that is relevant for GMNs operations. In GMN v1,
these storage locations were kept in sync by moving data in both
directions between them, and none of the locations where considered
authoritative. In v2, the SysMeta XML docs have been selected as the
authoritative source for SysMeta, so they are always updated first. The
database is then synced to match. So the db is "downstream" of the XML
doc and updated in a transaction after successful update of the XML doc,
using the same functions regardless of what was updated in the XML doc.

DataONEorg/d1_python,DataONEorg/d1_python,DataONEorg/d1_python,DataONEorg/d1_python