- Add IsCLIOverride flag to Environment to track CLI overrides vs helmfile composition
- Add CLISet field to SubhelmfileEnvironmentSpec to pass CLI overrides separately
- Create MergeMapsWithArrayMerge for element-by-element array merging (CLI overrides)
- Keep MergeMaps with array replacement (helmfile composition - documented behavior)
- Preserve IsCLIOverride flag through Environment merges and copies
- Fix LoadOpts.DeepCopy to preserve CLISet field
- Add comprehensive unit tests for both behaviors
This fixes the issue where array merging behavior from issue #2281 broke helmfile composition
Co-authored-by: yxxhero <11087727+yxxhero@users.noreply.github.com>