Issue:
Use `frunk` deriving mechanisms to reduce boilerplate

https://github.com/juspay/orca/blob/dddc9eaf1430adcd1293933e726c2f4f296c805b/crates/router/src/types/transformers.rs#L5-L14

Why not just use [frunk](https://crates.io/crates/frunk)?

Here's an example:
```rust
use frunk::LabelledGeneric;

#[derive(LabelledGeneric)]
enum ApiRoutingAlgorithm {
    RoundRobin,
    MaxConversion,
    MinCost,
    Custom,
}

#[derive(LabelledGeneric, PartialEq, Debug)]
enum RoutingAlgorithm {
    RoundRobin,
    MaxConversion,
    MinCost,
    Custom,
}

fn main() {
    let api_algorithm = ApiRoutingAlgorithm::MinCost;
    let algorithm: RoutingAlgorithm = frunk::labelled_convert_from(api_algorithm);

    assert_eq!(algorithm, RoutingAlgorithm::MinCost);
}
```

Resolution:
<think>
PR Context:
- Title: refactor: use frunk deriving mechanisms to reduce boilerplate
- Merged: 2022-12-14T10:17:06Z
- Files changed: 9 files
- Commits: 3 commits

Implementation approach:
## Type of Change
- [x] Refactoring

## Motivation and Context
Closes #122 

## How did you test it?
Manual, compiler-guided.

## Checklist
- [x] I formatted the code `cargo +nightly fmt`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed submitted code

</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** refactor: use frunk deriving mechanisms to reduce boilerplate (#137)
Co-authored-by: Arun Raj M <jar
Files to modify:


**crates/api_models/src/enums.rs**
  Modify existing code

**crates/api_models/src/payments.rs**
  Modify existing code

**crates/router/src/types/transformers.rs**
  Modify existing code

**crates/storage_models/src/address.rs**
  Modify existing code

**crates/storage_models/src/enums.rs**
  Modify existing code