Fix approve transfer API

refs #6583

MicroServiceChainChoice had been updated to have a foreign key to
MicroServiceChain which can be used directly, instead of fetching the
MicroServiceChain with the correct UUID.  Update approve_transfer for
this change.
Cleanup

Add instruction to API whitelist template, updated code to match.
Whitelisted IPs are now whitespace separated, instead of newline
separated.  Add display functions for MicroServiceChain and
MicroServiceChainChoice.  Cleanup imports.
Update dev-helper to delete pyc, backlog, storage

refs #6247

Update dev-helper to delete pyc's and pyo's when the DB is recreated.
Add new option to clear the transfer backlog and default AIP storage
location.
Update MCPGraphing for SetUnitVariable & exit codes

refs #6386

Display variable and variableValue or microservicechainlink (whichever
is set) for task type SetUnitVariable, as well as non-0 exit codes from
MicroServiceChainLinks. Nodes that start chains are bordered in dark
gold.
Move restructureForCompliance functions to correct client script

restructureForCompliance.py contained several functions that were not
used in that script, but were imported into other client scripts.  Move
those functions to the correct client script.  Add common code to
archivematicaFunctions and import that.
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
MCPServer sets currentPath in watchedDirectories

When starting a chain from a watched directory, ensure the unit'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.  Also, some cleanup.