Improve maintainability of ready_to_merge.vue
## Description Identified in https://gitlab.com/gitlab-org/gitlab/-/issues/235744+ and in [this discussion](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109382#note_1251705360) > FWIW, I think we're suffering from poor testability and maintainability in `ready_to_merge.vue`, which means we should strongly consider refactoring `ready_to_merge.vue` with testability in mind. The component `ready_to_merge.vue` is: - Hard to test. - The existing unit tests are often hyper focused on component internals rather than component behavior and often aren't behaving the way they intend to ([see relevant comment](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109382#note_1251701919)). - Hard to maintain. - It manages a lot of state (some of which is duplicated) from `mr` prop, `state` internal data, and other internal state. - Part of it's behavior is implemented in a separate mixin. - The template is large and has a number of conditionals. - There's some methods (e.g. [`initiateRemoveSourceBranchPolling`](https://gitlab.com/gitlab-org/gitlab/-/blob/6fa122832708431233393f40b59c0703c319834a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue#L439)which seem unreferenced - The `handleMergeButtonClick` method is very complex ## Investigation There's an existing [`new_ready_to_merge.vue`](https://gitlab.com/gitlab-org/gitlab/-/blob/91d4522a7523da78b323acf976389029c0ee3176/app/assets/javascripts/vue_merge_request_widget/components/states/new_ready_to_merge.vue) component. Is that intended to replace the `ready_to_merge.vue`?
issue