Issue:
fix(router): handle JSON connector response parse error

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [x] Bugfix
- [x] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
Certain connectors (Braintree, Rapyd, Trustpay, Boku) send error response in HTML or string format. This lead to a ``HE_00`` in our system as we try to accept it in a JSON format. Now we have introduced a ``get_json_deserialized`` function in router/utils.rs that can  be used to handle Json error. Json Error handling is implemented for Trustpay, Rapyd and Braintree. Boku already handles it. 


## How did you test it?
<!--
Did you write an integration/unit/API test to verify the code changes?
Or did you test this change manually (provide relevant screenshots)?
-->
![Screen Shot 2023-08-08 at 5 16 42 PM](https://github.com/juspay/hyperswitch/assets/131388445/9e7b3ab5-dda0-49d3-9e9f-5dc674dee7b3)

<img width="1074" alt="Screen Shot 2023-08-08 at 8 16 57 PM" src="https://github.com/juspay/hyperswitch/assets/131388445/0ca8396b-9379-4372-9750-b77d3afd362f">


## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed submitted code
- [ ] I added unit tests for my changes where possible
- [ ] I added a [CHANGELOG](/CHANGELOG.md) entry if applicable


Resolution:
<think>
PR Context:
- Title: fix(connector): [Braintree] add merchant_account_id field in authorize request
- Merged: 2023-08-10T18:11:39Z
- Files changed: 5 files
- Commits: 7 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [x] Bugfix
- [ ] New feature
- [x] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
1) added `Merchant Account id` field in authorize request for braintree. 
2) handle error response in case of wrong merchant account id 
3) cherry pick #1892

### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** fix(connector): [Braintree] add merchant_account_id field in authorize request (#1913)
Co-authored-b
Files to modify:


**crates/router/src/connector/braintree.rs**
  Add:
    - function: private::build_error_response

**crates/router/src/connector/braintree/transformers.rs**
  Add:
    - struct: pub::BraintreeMeta
    - struct: pub::BraintreeApiErrorResponse
    - struct: pub::TransactionError
    - struct: pub::CreditCardError
    - struct: pub::ErrorObject
    - struct: pub::BraintreeErrorResponse
    - enum: pub::ErrorResponse

**crates/router/src/connector/rapyd.rs**
  Modify existing code

**crates/router/src/connector/trustpay.rs**
  Modify existing code

**crates/router/src/utils.rs**
  Add:
    - function: pub::handle_json_response_deserialization_failure