Issue:
[FEATURE]: Add Session token flow for Paypal Sdk

### Feature Description

 Add Session token flow for Paypal Sdk

### Possible Implementation

- Accept data in `metadata` field of the MCA - create call
- Return that data in the sessions call
- Change payment_experience for paypal via paypal to sdk 

### 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(core): [Paypal] Add session_token flow for Paypal sdk
- Merged: 2024-05-27T11:19:17Z
- Files changed: 28 files
- Commits: 24 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [X] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
Add session_token flow to enable Paypal via Paypal SDK

- Accept data in `metadata` field of the MCA - create call
- Return that data in the sessions call
- Change payment_experience for paypal via paypal to sdk 

### Additional Changes
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(core): [Paypal] Add session_token flow for Paypal sdk (#4697)
Co-authored-by: swangi-kumari <sw
Files to modify:


**crates/api_models/src/payments.rs**
  Add:
    - struct: pub::SdkNextActionData
    - struct: pub::PaypalSdkMetaData
    - struct: pub::PaypalSdkSessionTokenData

**crates/connector_configs/src/common_config.rs**
  Add:
    - struct: pub::PaypalSdkData

**crates/connector_configs/src/connector.rs**
  Modify existing code

**crates/connector_configs/src/response_modifier.rs**
  Modify existing code

**crates/connector_configs/src/transformer.rs**
  Modify existing code

**crates/openapi/src/openapi.rs**
  Modify existing code

**crates/router/src/compatibility/stripe/payment_intents/types.rs**
  Modify existing code

**crates/router/src/compatibility/stripe/setup_intents/types.rs**
  Modify existing code

**crates/router/src/configs/defaults.rs**
  Modify existing code

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

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

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

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

**crates/router/src/core/payments/flows/session_flow.rs**
  Add:
    - function: private::create_paypal_sdk_session_token

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

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

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

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

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

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

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

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

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

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