Editing merge request results in 404 if approval rules are changed
<!--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=520603)
</details>
<!--IssueSummary end-->
<!---
Please read this!
Before opening a new issue, make sure to search for keywords in the issues
filtered by the "regression" or "type::bug" label:
- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=regression
- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=type::bug
and verify the issue you're about to submit isn't a duplicate.
--->
### Summary
In cases where the same MR is edited, and the approval rules are removed, the "Save Changes" button will result in a 404.
<!-- Summarize the bug encountered concisely. -->
### Steps to reproduce
- Create merge request
- Set up approval rules
- Edit merge request
- From a different tab, remove the approval rules or update them
- Submit previous changes
A 404 will be returned and an exception will be logged saying:
"Couldn't find ApprovalMergeRequestRule with ID=<id> for MergeRequest with ID=<id>"
### Example Project
N/A, can be reproduced in .com
### What is the current *bug* behavior?
404
<!-- Describe what actually happens. -->
### What is the expected *correct* behavior?
If changes happen to an MR that's being edited, these should result in a notification prompting the user to refresh the MR
<!-- Describe what you should see instead. -->
### Relevant logs and/or screenshots
Backtrace from .com (Correlation ID 01JMJTBBKJSWCA38ZMJTE5WHPS):
```
[app/services/issuable_base_service.rb:294:in `update',
app/services/merge_requests/base_service.rb:155:in `update',
app/services/merge_requests/update_service.rb:134:in `general_fallback',
ee/app/services/ee/merge_requests/update_service.rb:27:in `general_fallback',
app/services/merge_requests/update_service.rb:23:in `execute',
app/controllers/projects/merge_requests_controller.rb:247:in `update',
lib/gitlab/ip_address_state.rb:11:in `with',
ee/app/controllers/ee/application_controller.rb:45:in `set_current_ip_address',
app/controllers/application_controller.rb:491:in `set_current_admin',
lib/gitlab/session.rb:11:in `with_session',
app/controllers/application_controller.rb:482:in `set_session_storage',
lib/gitlab/i18n.rb:114:in `with_locale',
lib/gitlab/i18n.rb:120:in `with_user_locale',
app/controllers/application_controller.rb:473:in `set_locale',
app/controllers/application_controller.rb:466:in `set_current_context',
lib/gitlab/middleware/action_controller_static_context.rb:23:in `call',
ee/lib/omni_auth/strategies/group_saml.rb:41:in `other_phase',
lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call',
lib/gitlab/middleware/sidekiq_shard_awareness_validation.rb:20:in `block in call',
lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled',
lib/gitlab/middleware/sidekiq_shard_awareness_validation.rb:20:in `call',
lib/gitlab/middleware/memory_report.rb:13:in `call',
lib/gitlab/middleware/speedscope.rb:13:in `call',
lib/gitlab/database/load_balancing/rack_middleware.rb:23:in `call',
lib/gitlab/middleware/rails_queue_duration.rb:33:in `call',
lib/gitlab/etag_caching/middleware.rb:21:in `call',
lib/gitlab/metrics/rack_middleware.rb:16:in `block in call',
lib/gitlab/metrics/web_transaction.rb:46:in `run',
lib/gitlab/metrics/rack_middleware.rb:16:in `call',
lib/gitlab/middleware/go.rb:21:in `call',
lib/gitlab/middleware/query_analyzer.rb:11:in `block in call',
lib/gitlab/database/query_analyzer.rb:83:in `within',
lib/gitlab/middleware/query_analyzer.rb:11:in `call',
lib/ci/job_token/middleware.rb:11:in `call',
lib/gitlab/middleware/multipart.rb:173:in `call',
lib/gitlab/middleware/read_only/controller.rb:50:in `call',
lib/gitlab/middleware/read_only.rb:18:in `call',
lib/gitlab/middleware/unauthenticated_session_expiry.rb:18:in `call',
lib/gitlab/middleware/same_site_cookies.rb:27:in `call',
lib/gitlab/middleware/path_traversal_check.rb:40:in `call',
lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call',
lib/gitlab/middleware/basic_health_check.rb:25:in `call',
lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call',
lib/gitlab/middleware/request_context.rb:15:in `call',
lib/gitlab/middleware/webhook_recursion_detection.rb:15:in `call',
config/initializers/fix_local_cache_middleware.rb:11:in `call',
lib/gitlab/middleware/compressed_json.rb:44:in `call',
lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call',
lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call',
lib/gitlab/metrics/requests_rack_middleware.rb:83:in `call',
lib/gitlab/middleware/release_env.rb:12:in `call']
```
### Output of checks
This bug happens on GitLab.com
### Possible fixes
Prompt user to fetch and review MR changes
<!-- If you don't have /label privileges, follow up with an issue comment of `@gitlab-bot label ~"type::bug"` -->
issue