Issue:
fix(connector): Use `ConnectorError::InvalidConnectorConfig` for an invalid `CoinbaseConnectorMeta`

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [x] Bugfix
- [ ] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->

I've removed `to_connector_meta_from_secret_with_required_field`, which uses `MissingRequiredField` as an error (I also didn't like the unnecessary initialization of the `MissingRequiredField` before we knew if it would be needed). Instead, I added a `TryFrom` implementation for `CoinbaseConnectorMeta`, which uses the requested `ConnectorError::InvalidConnectorConfig`. Additionally, I included `CoinbaseConnectorMeta::try_from` in the `validate_auth_and_metadata_type` as suggested.

### Migration

```
-- The migration is for adding an empty `pricing_type` attribute for `CoinbaseConnectorMeta` where it is missing.
UPDATE merchant_connector_account
SET metadata = jsonb_insert(
    metadata,
    '{pricing_type}',
    '""',
    true
)
WHERE connector_name = 'coinbase'
    AND NOT metadata ? 'pricing_type';
```

### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables


## Motivation and Context
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you don't have an issue, we'd recommend starting with one first so the PR
can focus on the implementation (unless it is an obvious bug or documentation fix
that will have little conversation).
-->
This PR addresses the bug from the issue: https://github.com/juspay/hyperswitch/issues/2899.

## 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)?
-->

**Run unit test:**
```
cargo test --release  --package router --lib connector::coinbase::transformers::tests::coinbase_payments_request_try_from_works -- --exact
```
![image](https://github.com/juspay/hyperswitch/assets/8159517/a296af9b-a454-4d9b-a8ad-1939a837f04b)


### Migration script test

https://onecompiler.com/postgresql/3zz2tpkad

**Test script with test data and run migration:**
```label=dsa
CREATE TABLE merchant_connector_account (
    id SERIAL PRIMARY KEY,
    connector_name VARCHAR(255) NOT NULL
);
ALTER TABLE merchant_connector_account ADD COLUMN metadata JSONB DEFAULT NULL;

-- insert test data
INSERT INTO merchant_connector_account (
        id,
        connector_name,
        metadata
    )
VALUES
  (1, 'coinbase', '{ "pricing_type": "fixed-rate" }'),
  (2, 'coinbase', '{ "whatever_attribute": "abc" }'),
  (3, 'coinbase', '{}');

-- Before
select * from merchant_connector_account;

-- Run migration:
-- The migration is for adding an empty `pricing_type` attribute for `CoinbaseConnectorMeta` where it is missing.
UPDATE merchant_connector_account
SET metadata = jsonb_insert(
    metadata,
    '{pricing_type}',
    '""',
    true
)
WHERE connector_name = 'coinbase'
    AND NOT metadata ? 'pricing_type';
    
-- After
select * from merchant_connector_account;
```

**Output:**
```
Output:

CREATE TABLE
ALTER TABLE
INSERT 0 3
 id | connector_name |            metadata            
----+----------------+--------------------------------
  1 | coinbase       | {"pricing_type": "fixed-rate"}
  2 | coinbase       | {"whatever_attribute": "abc"}
  3 | coinbase       | {}
(3 rows)

UPDATE 2
 id | connector_name |                     metadata                      
----+----------------+---------------------------------------------------
  1 | coinbase       | {"pricing_type": "fixed-rate"}
  2 | coinbase       | {"pricing_type": "", "whatever_attribute": "abc"}
  3 | coinbase       | {"pricing_type": ""}
(3 rows)
```

**Run locally:**

**Invalid metadata:**
![image](https://github.com/juspay/hyperswitch/assets/8159517/5e087dad-9dab-4441-a444-787d8e720c1a)

**Empty metadata:**
![image](https://github.com/juspay/hyperswitch/assets/8159517/0f745195-0b0b-4276-aeba-c18ad11d3749)

**Correct metadata:**
![image](https://github.com/juspay/hyperswitch/assets/8159517/a5fe8ffa-12d2-449d-8363-a214aadca2fb)



## 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 the submitted code
- [x] I added unit tests for my changes where possible
- [ ] I added a [CHANGELOG](/CHANGELOG.md) entry if applicable


Resolution:
<think>
PR Context:
- Title: chore: nits and small code improvements found during investigation of PR#3168
- Merged: 2024-01-10T11:44:19Z
- Files changed: 4 files
- Commits: 1 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [x] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->

While addressing [PR#3168](https://github.com/juspay/hyperswitch/pull/3168), I came across several minor issues and made some small code improvements. These changes were unrelated to the main issue and were requested to be undone. Consequent
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** chore: nits and small code improvements found during investigation of PR#3168 (#3259)
Files to modify:


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

**crates/router/src/connector/worldline/transformers.rs**
  Modify existing code

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

**crates/router/src/core/payment_methods/vault.rs**
  Modify existing code