METS: Metadata.csv accepts file and directory metadata

Remove distinction between file and directory metadata in the metadata.csv.
First column can be named anything, and a metadata.csv can have file and
directory level metadata.
METS: Handle metadata.csv with different columns

Store parsed metadata in a different OrderedDict for each file, so that not
all metadata.csvs have to have the same columns. Also, fix createMETS to
use return values and fewer globals.
Contentdm: METS has namespaces

refs #7239

METS files have fully qualified namespaces, instead of relying on the
default. Update contentdm to search for elements in any namespace.
Contentdm: Add AIP UUID and file UUID columns

refs #7239

Add AIP UUID and file UUID columns to project client simple/compound.txt
files.
CONTENTdm: Project client does not query server

refs #7239

Update MicroServiceChainLinks to not query the CONTENTdm server if the
upload type is project client.
Restructure for CONTENTdm: General cleanup

Move comments to doc strings as appropriate. Simplify duplicate code.
Add comments with questions and ideas.
CONTENTdm: Convert to lxml, fix simple project client

refs #7239

Update simple project client code to not read from server, just parse METS
file. Use element names as column headers and element text values for the
row values.  Use both DC and non-DC metadata.

Minimally convert from using xml.dom.minidom to the more powerful
lxml.etree. Update code using minidom, cleaning up and adding docstrings as
well.
Ingest: Make DIPs available to be downloaded

refs #7239

Add review link to the move to uploadedDIPs microservice to be able to
review and download DIPs. Consolidate directory browsing endpoint.
CONTENTdm: Replace project client functions with one function

WIP