Move characterization to FPR rules
Characterization: add default commands

One or more default normalization commands can be defined, by defining
FPRules with the purpose 'default_characterization'. As with
normalization, these will be called if no matching FPRules can be found.
This also allows for characterization rules to be applied to files that
couldn't be identified.

FITS will be the default characterization command in 1.1; others can
be introduced, or customized by users.
Characterization: add fiwalk plugins
Add examine_contents microservice

This new microservice runs a tool which attempts to extract meaningful
patterns and features from files. The primary tool run right now is
bulk_extractor, which is run on disk images and other files alike.

Refs #5880.
Examine contents: add admin option to control

Refs #5880.
preconfiguredChoices: Set based on UUID, not description

preconfiguredChoices were previously being matched via description
strings, which was error-prone. This replaces matching with precise
UUID matches instead.
Add internal comment to defaultProcessingMCP.xml
utils.get_directory_name: split into two functions

The utils.get_directory_name function was a generally useful function
but worked specifically on Job instances, preventing it from being
used with other types where it would be useful.

Generalized by making it take a string as the first argument, and
added a second argument to specify a default to return if no name is
found. Also added a get_directory_name_from_job() function which acts
like the old get_directory_name: it takes a single job instance
argument, and passes it along to get_directory_name with a default of
the job UUID.
Transfer backlog: add link to view logs
FIDO: Add Archivematica extension file, refs #5892
Add AccessData AD1 signature extension
Add AccessData AD1 encrypted disk image signature
Add raw disk images

These have no magic bytes, just extensions.
Extraction: make extraction optional

Refs #5894
Extract: add option to delete original package

This was previously hardcoded; this moves the option to the UI, allowing
users to choose.

In a future commit this will be set by default in the administrative
settings.

Refs #5894.
main.models: add model for UnitVariable
ReplacementDict: add .fromstring static method

This takes care of parsing a string into Python literals, so that
consumers can just pass in a string and don't have to worry about
dealing directly with evaluating Python code.
Migrate certain unit variables to passVars in new chains

Certain chains need to be able to inherit passVars set in previous
chains. An example of this is identification, where a second pass of
identification happens after extraction during the transfer; the
previous choice made needs to be able to apply.

Unit variables with the variable name 'replacementDict' will now have
their values included into passVars at the creation of every subsequent
chain in the unit.
Stumped in way to establish a transfer metadata set that will be passed on to the microservice chain via the Transfers table.

Conflicts:
	src/dashboard/src/media/js/transfer/component_directory_select.js
Now generates a transfer metadata set.

refs #5356

Added logic so the first transfer component added creates a
row in a DB table that can server as a parent record for any
transfer-component-specific metadata added in the future.

Conflicts:
	src/MCPServer/share/mysql_dev1.sql
	src/dashboard/src/main/models.py