Use etag caching for merge request attributes which depends on the current user abilities
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=36828)
</details>
<!--IssueSummary end-->
The idea is to gradually migrate the fields out of [MergeRequestPollWidgetEntity](https://gitlab.com/gitlab-org/gitlab/blob/master/app%2Fserializers%2Fmerge_request_poll_widget_entity.rb) to the [MergeRequestPollCachedWidgetEntity](https://gitlab.com/gitlab-org/gitlab/blob/master/app%2Fserializers%2Fmerge_request_poll_cached_widget_entity.rb). The following attributes depends on the current user abilities:
|Frondend attribute|Backend attribute|Why becomes outdated|
|-|-|-|
|canMerge|merge_path|attr individual to a user|
|canRevertInCurrentMR|can_revert_on_current_merge_request|attr individual to a user|
|canCherryPickInCurrentMR|can_cherry_pick_on_current_merge_request|attr individual to a user|
|canRemoveSourceBranch|can_remove_source_branch|attr individual to a user|
|canPushToSourceBranch|can_push_to_source_branch|attr individual to a user|
|removeWIPPath|remove_wip_path|attr individual to a user|
|commitMessage|default_merge_commit_message|by changing MR attribute, but issues parsing contains a check specific to a user|
|commitMessageWithDescription|default_merge_commit_message_with_description|by changing MR attribute, but issues parsing contains a check specific to a user|
|newBlobPath|new_blob_path|attr individual to a user|
|canCancelAutomaticMerge|cancel_auto_merge_path|attr individual to a user|
|setToAutoMergeBy|merge_user|attr individual to a user|
Related issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/61559
issue