Refactor for clarity. Done with #3188.
Do all foreign key resolution in memory. Closes #3188.

This change to the foreign key index component and its use in
EnumTransformer enables EnumTransformer to safely not save records
which the FK index reports are unresolvable.

The prior implementation did not handle either circular FK chains
(which are possible in the MDES) or deferring records to save after
their backwards foreign keys were resolved.
Check PSU ID in parallel with other checks. Closes #3264.