Address review findings on #3590:
- Unterminated block comments now throw instead of silently passing:
{'plugin':[]} /* no longer parses, so the install keeps its
source-context error for genuinely malformed configs (CodeRabbit,
Greptile).
- Line-comment scanners stop at CR as well as LF, so CR-only line
endings do not consume the rest of the file (CodeRabbit).
- activationIsInactive restores the 'plugin must be an array' shape
check that the strict parser surfaced, so a non-array plugin no
longer counts as inactive (Greptile).
Regression tests: unterminated comment with source context, CR-only
endings, and non-array plugin across apply/repair/doctor modes.