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