Issue:
[FEATURE] Create a dummy connector for internal and external testing of payments and refunds flows

### Feature Description

A dummy test connector needs to be created with the ability to process all the payment methods available on Hyperswitch. This dummy connector will be useful for internal and external testing and it will be used extensively by those trying to test or integrate Hyperswitch without setting up any active accounts with any of the processors. 

The dummy test connector will be able to simulate most basic scenarios (success/failure/pending) for all the available payment methods by having separate test payment method data for each of these flows. Payment failure can include further breakdown in scenarios according to the payment methods. 

For example, there should be separate test card numbers for simulating success, failure, pending statuses of 3DS and Non 3DS flows. Under failure, different test card numbers should enable simulating errors like invalid card info, insufficient funds, declined by gateway, declined by issuing bank, declines due to bad fraud score, etc. 

### Possible Implementation

We would need to create a dummy connector to test all the payment flows, refund flows, webhooks, etc.

The two major tasks are:
1. Server implementation for dummy connector for the following endpoints
a. payments #980
b. refunds #1071 
c. webhooks 

2. Integrating Hyperswitch with the dummy connector for the following endpoints
a. payments #1084 
b. refunds #1084 
c. webhooks 

3. Enable Dummy Connector and make it default

**Cards:**
Non- 3DS payments flow https://github.com/juspay/hyperswitch/issues/727


### Have you spent some time to check if this feature request 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?

No, but I'm happy to collaborate on a PR with someone else

Resolution:
<think>
PR Context:
- Title: feat(connector): add payment routes for dummy connector
- Merged: 2023-05-08T10:01:41Z
- Files changed: 11 files
- Commits: 12 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
Add payment routes for dummy connector.

### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [x] This PR modifies application configuration/environment variables

<!-- 
Provide links to the files with corresponding chan
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(connector): add payment routes for dummy connector (#980)
Files to modify:


**crates/redis_interface/src/commands.rs**
  Add:
    - function: pub::serialize_and_set_key_with_expiry

**crates/router/src/configs/settings.rs**
  Add:
    - struct: pub::DummyConnector

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

**crates/router/src/routes.rs**
  Add:
    - mod: pub::dummy_connector

**crates/router/src/routes/app.rs**
  Add:
    - function: pub::server
    - struct: pub::DummyConnector
    - impl: impl DummyConnector

**crates/router/src/routes/dummy_connector.rs**
  Add:
    - function: pub::dummy_connector_payment
    - mod: private::errors
    - mod: private::types
    - mod: private::utils

**crates/router/src/routes/dummy_connector/errors.rs**
  Add:
    - function: private::fmt
    - function: private::switch
    - enum: pub::ErrorType
    - enum: pub::DummyConnectorErrors
    - impl: impl core::fmt::Display for DummyConnectorErrors
    - impl: impl common_utils::errors::ErrorSwitch<api_models::errors::types::ApiErrorResponse> for DummyConnectorErrors

**crates/router/src/routes/dummy_connector/types.rs**
  Add:
    - function: pub::new
    - function: private::fmt
    - function: pub::new
    - struct: pub::DummyConnectorPaymentRequest
    - struct: pub::DummyConnectorCard
    - struct: pub::DummyConnectorPaymentData
    - struct: pub::DummyConnectorPaymentResponse
    - enum: pub::Flow
    - enum: pub::DummyConnectorPaymentMethodData
    - enum: pub::DummyConnectorTransactionStatus
    - impl: impl FlowMetric for Flow
    - impl: impl DummyConnectorPaymentData
    - impl: impl std::fmt::Display for DummyConnectorTransactionStatus
    - impl: impl DummyConnectorPaymentResponse

**crates/router/src/routes/dummy_connector/utils.rs**
  Add:
    - function: pub::tokio_mock_sleep
    - function: pub::payment
    - function: private::store_payment_data