TODO
Name the not-yet-distinguished input/output paths
open_common/fopen_common to call actual open
Move open handling below, start with simple cases
fs_override.c: Remove unused return type macro parameter
Extract Lib.FSHook.OutputBehavior
Annotate undelayed outputs with the actual effects (MISSING SOME EFFECTS).
Only record delayed/undelayed outputs that actually had effects.
Add Lib.Map: filterA, filterAWithKey
Safely delete files that store only newly generated content
Add test delwhenfail
fs_override: All wrappers report outputs properly
Extract makeInputs, fsAccessHandlers
Remove failed command outputs.

 * Add --no-delete-failed-outputs
--delete-unspecified -> --no-delete-unspecified. Controls whether illegal outputs deleted.
newline between stdout and stderr when both exist