Issue:
[REFACTOR] accept customer details in customer object

Currently, for a payment, the `CustomerDetails` such as email, phone, name are accepted in the `PaymentsRequest` struct 
https://github.com/juspay/hyperswitch/blob/795500797d1061630b5ca493187a4e19d98d26c0/crates/api_models/src/payments.rs#L59

It is not clear that these fields are related to the customer. One may think that the fields are for a payment and one time use only. But these are stored in the `Customers` table.

A better api design would be to accept the customer details in a `customers` field in `PaymentsRequest`.

It would look something like this
```json
{
  "customer" : {
    "id": "cus_1235",
    "email" : "example@example.com"
  }
}
```

Resolution:
<think>
PR Context:
- Title: refactor(core): accept customer data in customer object
- Merged: 2023-06-16T13:53:15Z
- Files changed: 11 files
- Commits: 8 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [x] Bugfix

## Description
<!-- Describe your changes in detail -->
This PR will support sending the customer details in the `customers` object in `PaymentsRequest` in all three endpoints 
- payments-create
- payments-update
- payments-confirm

The changes are added in a backwards compatible manner, the older fields will be deprecated soon.

### Additional Changes

- [x] This PR modifies the API contract

<!--
Pr
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** refactor(core): accept customer data in customer object (#1447)
Co-authored-by: Abhishek Marrivagu <
Files to modify:


**crates/api_models/src/payments.rs**
  Remove:
    - function: private::from
    - impl: impl From<PaymentsRequest> for VerifyRequest
  Add:
    - struct: pub::CustomerDetails

**crates/router/src/core/payments/helpers.rs**
  Add:
    - function: private::validate_options_for_inequality
    - function: pub::validate_customer_details_in_request
    - function: pub::get_customer_details_from_request

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

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

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

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

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

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

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

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

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