Replace the module-local `impureConfigMerger` with
`lib.hm.generators.mkImpureConfigMerger`, keeping the JSON5 reader for
settings that may contain comments.
Behavior is preserved but two rough edges are fixed along the way:
- A corrupted existing file now fails activation loudly instead of
silently replacing the user's settings with the generated defaults.
- An existing file keeps its permissions and symlink target instead of
being replaced with a fresh mode-644 file.
Add a test that runs the generated activation snippet with `$DRY_RUN` and
`$VERBOSE` set, covering a dry-run that leaves existing settings
untouched, a live merge on top of preexisting settings, verbose logging,
silent quiet mode, permission preservation, and loud failure on a
corrupted file.
Assisted-by: Goose + GLM 5.3 Flash
Add `mutableUserDebug` and `userDebug` options to generate `debug.json` file.
The options are heavily inspired by `mutableUserTasks` and `userTasks` options implementation.
Closes#8091