ReplacementDict: add constructor from DB data

This new constructor allows a ReplacementDict to be constructed by
passing in rows from the database. This allows places outside of the
Unit classes to gain access to the full suite of standard unit
variables without having to fully reimplement the logic.

Eventually the three Unit classes can probably be migrated to use this
constructor, ensuring that there's only one canonical way to produce
this style of ReplacementDict.

refs #6451
normalize: include standard unit variables

This uses the ReplacementDict.frommodel constructor to get access to
all the standard File unit variables in addition to the special
normalization unit variables. This provides more versatility when
writing normalization and normalization verification commands.

refs #6451
Move passClasses to archivematicaCommon

These classes have no actual dependencies on any contents of MCPServer,
and are now being used in multiple modules, so move them to
archivematicaCommon.

The module is renamed from passClasses to dicts.

Refs #6451.
ReplacementDict.replace: use doctest-compatible docstring
ReplacementDict.fromstring: add docstring
dicts: include synonyms from Normalize

This allows synonyms like %fileFullName% to work with other microservices.
RD: add new to_gnu_options() method

This makes it easier for commands that pass options to non-shell script
commands to do so as CLI arguments.
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.2; others can
be introduced, or customized by users.
Characterization: add fiwalk plugins
createMETS2: correct FPCommandOutput purposes
createMETS2: fix FPCommandOutput with encoding declarations
FPCommandOutput: use combo of file and rule UUIDs for pk

Previously only one output per FPCommand was allowed, whereas we want
to accept one per file/command combination.
transcoder: Add a few stdout separators
Convert submission documentation workflow to use new ID tool
Remove duplicate chain post-normalization

Post-normalization, a full chain is repeated twice. The only difference
between the two chains is a variable set at the very end; otherwise
every chainlink is identical.

The duplicated chains were making it difficult to introduce new
microservices that occured in this part of the workflow, especially
when introducing new choices.

This commit unifies the two chains. They branch at the very beginning,
to set the unit variable, and then converge into an identical set of
chainlinks.
Add submission documentation normalization to preconfigured choices