Issue:
[REFACTOR] The `Drop` implementation on `RedisConnectionPool` seems unnecessary

### Description

I'll keep this issue as a source of documentation and decisions taken regarding the graceful shutdown of Redis connections.

When I was working on #1743, I noticed that the `Drop` implementation on `RedisConnectionPool` caused panics when tests were being run.

https://github.com/juspay/hyperswitch/blob/1ab4226c780e9205785f012fd1c48c7a4bafb48f/crates/redis_interface/src/lib.rs#L197-L203

When I went down the rabbit hole of identifying possible solutions to it, I found that none of the log messages within [`close_connections()`](https://github.com/juspay/hyperswitch/blob/1ab4226c780e9205785f012fd1c48c7a4bafb48f/crates/redis_interface/src/lib.rs#L157-L179) were ever printed. To address this, I temporarily added a `std::mem::forget(_guard)` line in `router/src/bin/router.rs` so that the logs would be available. 

This brought out the fact that all attempts by us to close Redis connections (the connection pool, publisher client and subscriber client) were failing with the following warning:

```text
Fatal error sending QUIT command to router. Client may be stopped or not yet initialized.
```

When I attached the debugger, set a debugger breakpoint at the first line of the `Drop` implementation and listed Redis clients using the `redis-cli` tool, there were no Redis clients arising from the application in the list, and the warning was indeed correct. 

It seems that Redis connections are being closed before even the `Drop` implementation has been entered, and I'm unable to explain why. I couldn't find anything relevant in the `fred` codebase either. I was able to reproduce this with a Redis cluster set up using Docker Compose. 

Resolution:
<think>
PR Context:
- Title: refactor(redis_interface): remove the `Drop` implementation on `RedisConnectionPool`
- Merged: 2023-07-25T10:11:56Z
- Files changed: 2 files
- Commits: 3 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [ ] Enhancement
- [x] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
This PR drops the `Drop` implementation (pun intended) on `RedisConnectionPool`.

## Motivation and Context
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you 
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** refactor(redis_interface): remove the `Drop` implementation on `RedisConnectionPool` (#1786)
Files to modify:


**crates/redis_interface/src/lib.rs**
  Remove:
    - function: pub::close_connections
    - function: private::drop
    - impl: impl Drop for RedisConnectionPool

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