characterizeFile: don't try to recharacterize files

Fixes #7081.
createSIP: check if destination directories exist when moving

Fixes #7080.
Merge contents when moving dirs to objects

When submissionDocumentation was being moved into the AIP before
characterization, Archivematica was using mv. This meant that if the
SIP already had a directory by that name, submissionDocumentation would
end up nested inside the existing directory instead of merged with it.

Fixes #7080.
identifyFileFormat: quote arguments

The arguments were being misinterpreted in the case that
relativeLocation contained a space.

Fixes #7150.
Replace Python 2.5-style exception syntax with 2.6-style

Also fixes up an exception handling block which captured an exception
under one name and then tried to use the object under a different name.
Update createStructuredDirectory

Move createStructuredDirectory into archivematicaFunctions and rename
create_structured_directory so it can take advantage of the directory
constants and functions already there.  Add manual normalization
constants to that file as well.  Update all callers, remove now
deprecated archivematicaCreateStructuredDirectory.py/sh, and do some
minor cleanup.
Add AIP reingest button

refs #6488

Add Reingest button to the archival storage tab which POSTs to the
storage service reingest endpoint.  Add reingest form and storage
service helper to support this
Initial updates for Re-ingest AIP

refs #6488

Reuse existing DIP from AIP MSCLs and update for newer, more general use
case.

Update determineAIPVersionKeyExitCode to default to the only path
available, as there are no exceptions to AIP processing currently.
Remove assignFauxFileUUIDs and renameDIPFauxToOrigUUIDs as we won't be
using fake IDs to separate the original SIP from the reingested AIP.

Many SQL updates:
* Fix typos, remove bizarre links
* Update microservice groups to make them more contiguous
* Verify checksums moved to after metadata processing, as metadata
generates checksums too
* Metadata reminder moved to before submission documentation and
metadata processed
* Remove old style file ID
* Update reingest chain to use existing DIP and AIP creation, instead
of custom path
* Add processingMCP to reingest path
* Remove useless magic link, clean up setup for normalization and
setting which normalization node to go to
* Delete all TasksConfigs and StandardTasksConfigs that have no foreign
keys pointing at them
Rename DIPfromAIP to reingest AIP

refs #6488

Rename MicroServiceChainLinks and watched directory to reflect actual
purpose.
MCPServer sets currentPath in watchedDirectories

When starting a chain from a watched directory, ensure a SIP's
current path matches the one found in the directory.  This can happen
during AIP reingest, where the last know location is not the watched
directory it is currently in. Do not change currentPath for DIPs, as
they can run in parallel with the originating SIP and overwrite the
SIP's information. Also, some cleanup.
Entry filter in browse is configurable

The filter to determine which files/folders are displayed when browsing the
storage service (ie starting a transfer) is now a parameter, instead of
builtin.  Default is still to display folders but not files.
Stub of add metadata files

wip
Fill in add metadata files

squash with above and add better commit message later
Post API information to storage service

If default setup requested, post the initial user and API key to the
storage service when registering.
Add start reingest endpoint

refs #6488

Add start reingest endpoint to move the new SIP from tmp to the reingest
watched directory.  This is where any pre-processing will happen, such as
clearing remnants of the old SIP from the DB.

Update helpers.json_response to accept a status code to pass to the
response.
Handle failed reingest

refs #6488

Update reject reingest to use normal rejected SIP chain.  Rejected or
failed SIPS attempt to reset their ingest status with the storage service.
Display errors from the storage service properly when starting reingest.
Add reingest SIP type

refs #6488

Add an AIP/AIC Reingest type to sip_types to distinguish between a normal
SIP and one that is being reingested.  This is primarily useful when
storing the AIP, as we want to update the package on the storage service
(PUT), not create a new one (POST).
Support metadata files added during Ingest

refs #6488

When writing the METS, check for a metadata.csv added to the SIP, in
addition to ones from the originating transfers.  Add conversion of
metadata.json to metadata.csv for files added during ingest.
Restructure reingest AIP to resemble SIP

refs #6488

Reingested AIP restructuring makes it look more like a normal SIP, instead
of putting most things in submissionDocumentation.
Parse METS file into DB during reingest

refs #6488

wip