Add context and preserve cause of error when reading supplemental UI
When the UI loader encounters a problem reading supplemental files, it is not consistent with how it reports that error. In some cases, it overwrites the error message. Other cases it allows the error to bubble without adding any additional context. Instead, the error should be handled in much the same way as an error when reading the UI bundle itself. A new error should be constructed that provides context and the cause should be attached to it (i.e., stacked).
The error should look something like this:
[...] FATAL (antora): Failed to read ui.supplemental_files directory: /path/to/playbook/supplemental-files (resolved from: ./supplemental-files)
Cause: Error
at /path/to/node_modules/@antora/ui-loader/lib/load-ui.js:287:23
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async Promise.all (index 1)
at async GeneratorContext.loadUi (/path/to/node_modules/@antora/ui-loader/lib/load-ui.js:101:17)
at async Promise.all (index 1)
at async generateSite (/path/to/node_modules/@antora/site-generator/lib/generate-site.js:17:5)
at async Command.parseAsync (/path/to/node_modules/commander/lib/command.js:917:5)
Caused by: Error: Dangling symbolic link detected: partials/default.hbs
The context message should clarify whether the subject is a supplemental UI directory or an entry since the key accepts both value types.