Issue:
fix(router): make customer id mandatory when address or setup future usage given

## Type of Change

- [x] Bugfix
- [ ] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates

## Description
Make customer ID mandatory when addresses or setup_future_usage are given.


### Additional Changes
Nil

## Motivation and Context
Customer id is required when addresses are given for GDPR compliance. It's also required when setup future usage is given since the payment method needs to be saved and associated with the given customer.

## How did you test it?
Stripe payments.

- **PaymentCreate**: when confirm = true and setup_future_usage is given but not customer id.
<img width="959" alt="image" src="https://user-images.githubusercontent.com/47862918/210523840-9cd204c6-9725-4dd8-8ea7-d8e6482ee151.png">

- **PaymentUpdate**: confirm = true, but customer id not given. Note that neither address nor setup future usage is given in the request. However it was given in the PaymentCreate request, i.e. verification needs to be done against values present in the database as well.
<img width="959" alt="image" src="https://user-images.githubusercontent.com/47862918/210524379-2755df4f-8405-439f-bdb1-a8657549ae6e.png">

- **PaymentConfirm**: similar to **PaymentUpdate**
<img width="959" alt="image" src="https://user-images.githubusercontent.com/47862918/210524536-35f5f4ec-02bb-48e7-8765-591cbf93bbde.png">


## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt`
- [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(router): better positioning for mandatory customer id conditions
- Merged: 2023-01-12T19:50:19Z
- Files changed: 4 files
- Commits: 3 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [x] Bugfix
- [ ] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates

## Description
<!-- Describe your changes in detail -->
Customer ID is mandatory when an address or setup_future_usage is given. This was not being checked properly, leading to some edge cases. This PR fixes that.

### Additional Changes
None
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configu
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** fix(router): better positioning for mandatory customer id conditions (#364)
Files to modify:


**crates/router/src/core/payments/helpers.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_update.rs**
  Modify existing code