Refactor CI rules entry to use composed value

What does this MR do and why?

This MR refactors CI rules entry to use composed value.

When we return a value from an entry, we always need to return the composed version. In Rules, we return "config", which means the hash version of what the YAML file has. I changed it to "super" because it needs to have a composed value of each sub-entry.

With this, we also needed to change the validate_against_warnings method of lib/gitlab/ci/config/entry/processable.rb. Since we haven't composed the nested entries yet, we cannot use *_value attributes there.

Step Status
1. Move CI rules-changes to an entry class !89463 (merged)
2. Refactor CI rules entry to use composed value 👈 You are here
3. Add rules:changes:paths alias to rules:changes !90171 (merged)
4. Implement rules:changes:compare !90968 (merged)

Related to #293645 (closed)

These changes are behind the feature flag ci_value_change_for_processable_and_rules_entry #365876 (closed).

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Furkan Ayhan - OOO until 29 July

Merge request reports

Loading