When --custom-content points to a parent directory (no module.yaml at
root), scan immediate subdirectories (1 level) for module.yaml files.
Previously the path was silently rejected and the installer fell back to
cached modules, reporting "updated" without actually copying new files.
Adds resolveCustomContentPaths() method and applies it to all three
custom content processing flows (quick-update, update, fresh install).
Closes#2040
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>