Refactor E2E test framework to not refresh page when waiting for Merge button
<!--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=371575)
</details>
<!--IssueSummary end-->
## Summary
On completion of the following issues, the E2E tests may be able to be refactored wait for the Merge button to appear without refreshing the page.
- https://gitlab.com/gitlab-org/gitlab/-/issues/367965
- https://gitlab.com/gitlab-org/gitlab/-/issues/367891
- https://gitlab.com/gitlab-org/gitlab/-/issues/372515
<!--
Please briefly describe what part of the code base needs to be refactored.
-->
## Improvements
Speed and reliability improvements in the E2E tests. It is faster to check the status of an element on a page rather than to wait for a page reload.
<!--
Explain the benefits of refactoring this code.
See also https://about.gitlab.com/handbook/values/index.html#say-why-not-just-what
-->
## Risks
We must ensure that the Merge button appears in all cases, otherwise tests will be flaky.
## Involved components
`gitlab/qa/qa/page/merge_request/show.rb` would be the key file involved.
<!--
List files or directories that will be changed by the refactoring.
-->
<!--
Please select the appropriate label from the following:
~"feature::addition"
~"type::maintenance"
~"maintenance::refactor"
~"maintenance::pipelines"
~"maintenance::workflow"
-->
issue