Issue:
[BUG] No provision for approving payments kept in ManualReview state for FRM flows

### Bug Description

Once a fraudulent payment transaction is identified before authorization, it can be canceled or kept in manual reviewing state. If it is canceled, the payment is marked as a `failed` transaction. If the decision for the transaction is `manual_review`, it needs to be reviewed by the consumer and can be approved or rejected.

If the transaction seem legit, the consumer can hit the `/approve` endpoint for approving the payments. This flow is broken. 

### Expected Behavior

If a txn is marked as `fraudulent`, it should still proceed for authorization, without capturing the amount.

Upon approval, the amount can be captured.
Upon rejection, the txn can be voided.

### Actual Behavior

If a txn is marked as `fraudulent`, the flow would store the `payment_method_data` in locker, which could be later fetched if approval was given.

Upon approval, it tries to fetch `payment_method_data` from locker, but fails (due to recent locker changes).
Upon rejection, it marks the txn as `failed`.

### Steps To Reproduce

1. Create a merchant account
2. Create an API key
3. Add payment connector
4. Add FRM connector (enable pre flows for card, and set merchant_decision to `manual_review`)
5. Create a payment using debit / credit card w huge amounts, so it can be marked as fraudulent
6. Returned status - `requires_merchant_action`
7. Try to approve this payment
8. Returned error - payment_method_data not found

### Context For The Bug

This is specifically for Pre-Transaction FRM flows, where the decision is set to `manual_review`. If a txn is stuck with state `requires_merchant_action`, those transactions can never be approved. They can only be rejected.

### Environment

Are you using hyperswitch hosted version? Yes/No
If yes, please provide the value of the `x-request-id` response header to help us debug your issue.

If not (or if building/running locally), please provide the following details:
1. Operating System or Linux distribution:
2. Rust version (output of `rustc --version`): `rustc 1.74.1 (a28077b28 2023-12-04)`
3. App version (output of `cargo r --features vergen -- --version`): ``


### Have you spent some time checking if this bug has been raised before?

- [X] I checked and didn't find a similar issue

### Have you read the Contributing Guidelines?

- [X] I have read the [Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)

### Are you willing to submit a PR?

Yes, I am willing to submit a PR!

Resolution:
<think>
PR Context:
- Title: fix(frm): update FRM manual review flow
- Merged: 2024-01-19T06:58:28Z
- Files changed: 7 files
- Commits: 7 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [x] Bugfix
- [ ] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
#3175 

### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are the paths wh
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** fix(frm): update FRM manual review flow (#3176)
Co-authored-by: Kashif <mohammed.kashif@juspay.in>
Files to modify:


**crates/router/src/core/fraud_check.rs**
  Modify existing code

**crates/router/src/core/payments.rs**
  Modify existing code

**crates/router/src/core/payments/operations/payment_approve.rs**
  Modify existing code

**crates/router/src/core/payments/operations/payment_reject.rs**
  Modify existing code

**crates/router/src/core/payments/operations/payment_response.rs**
  Modify existing code

**crates/router/src/core/payments/retry.rs**
  Modify existing code

**crates/router/src/routes/payments.rs**
  Modify existing code