Issue:
[BUG] Make get_redis_conn return result in StorageInterface

### Bug Description

Currently `get_redis_conn` function in StorageInterface exposes `redis_conn` directly instead use `redis_conn()` function from `Store` and return Result in this function.

### Expected Behavior

It should return err in case of redis connection goes down

### Actual Behavior

It waits forever to connect to redis

### Steps To Reproduce

1. Run the application
2. Stop redis service
3. Try to do some redis operation

### Context For The Bug

_No response_

### Environment

Are you using hyperswitch hosted version? No
Rust Version: 1.70.0

### Have you spent some time to check if this bug has been raised before?

- [X] I checked and didn't find 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?

None

Resolution:
<think>
PR Context:
- Title: refactor(redis): invoke `redis_conn()` method instead of cloning `redis_conn` property in `StorageInterface`
- Merged: 2023-08-01T07:44:31Z
- Files changed: 13 files
- Commits: 17 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [X] Bugfix
- [ ] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
Fixes #1497 

## Motivation and Context
Please find the details in the issue [1497](https://github.com/juspay/hyperswitch/issues/1497)


## How did you test it?
unit tests and postman

## Checklist
<!-- Put an `x` in the boxes that apply -->

- [X] I formatted the code `ca
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** refactor(redis): invoke `redis_conn()` method instead of cloning `redis_conn` property in `StorageIn
Files to modify:


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

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

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

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

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

**crates/router/src/db/api_keys.rs**
  Modify existing code

**crates/router/src/db/cache.rs**
  Modify existing code

**crates/router/src/db/merchant_connector_account.rs**
  Modify existing code

**crates/router/src/routes/dummy_connector/core.rs**
  Modify existing code

**crates/router/src/routes/dummy_connector/utils.rs**
  Modify existing code

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

**crates/router/tests/cache.rs**
  Modify existing code

**crates/router/tests/services.rs**
  Add:
    - function: private::get_redis_conn_failure
    - function: private::get_redis_conn_success
    - mod: private::utils