Issue:
[FEATURE] onboard customer's bank details using /payment_methods CREATE

### Feature Description

Add capability to onboard customers and their bank details prior to making a txn.

**Current State**
Only card payment method can be persisted using /payment_methods endpoint. A txn has to be completed for persisting bank details.

**Use case**
Use payment_tokens for initiating a bank txn.

### Possible Implementation

Add capability in /payment_methods CREATE API to persist bank details.

### Have you spent some time checking if this feature request 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: feat(payment_method): add capability to store bank details using /payment_methods endpoint
- Merged: 2024-01-17T09:19:29Z
- Files changed: 14 files
- Commits: 16 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [x] New feature
- [ ] Enhancement
- [x] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
Ref - Issue #3112 

### Additional Changes

- [x] 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 
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(payment_method): add capability to store bank details using /payment_methods endpoint (#3113)
C
Files to modify:


**crates/api_models/src/payment_methods.rs**
  Modify existing code

**crates/api_models/src/payouts.rs**
  Modify existing code

**crates/router/src/connector/adyen/transformers.rs**
  Remove:
    - function: private::get_payout_card_details
  Add:
    - function: private::try_from
    - impl: impl TryFrom<&PayoutMethodData> for PayoutCardDetails

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

**crates/router/src/core/payment_methods/cards.rs**
  Add:
    - function: pub::store_default_payment_method

**crates/router/src/core/payment_methods/transformers.rs**
  Add:
    - function: pub::mk_add_bank_response_hs

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

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

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

**crates/router/src/core/payouts/helpers.rs**
  Modify existing code

**crates/router/src/types/api/payment_methods.rs**
  Modify existing code

**crates/router/tests/connectors/adyen.rs**
  Modify existing code

**crates/router/tests/connectors/wise.rs**
  Modify existing code