Remove unused parent dir logic in module merging

This doesn’t make any sense. Why would we create the parent directories
of the paths we just enumerated?
Improve enumeratorAtURL extension, use it more
Restore error-catching for module merging

This was causing CI failures, apparently when attempting to enumerate
nonexistent directories.