Issue:
[FEATURE]: [NMI] Currency Unit Conversion

### :memo: Feature Description

- Each currency can be described in terms of base or minor units. 
- For instance, when dealing with USD currency, the Cent is considered as the minor unit, while the Dollar is considered the base unit. 
- In Hyperswitch, the amount value is expected to be always provided in minor units. 
- For example: In USD, If the amount is 1 in base unit (Dollar), then it will be equivalent to 100 in minor units (Cent)
- Some of the connectors integrated require the amount to be converted to a desirable unit before being passed to them. 
- We have functions `to_currency_base_unit` and `to_currency_lower_unit` in place to convert the minor unit amount to its decimal equivalent and vice versa. These conversions are handled explicitly based on the connector.


### :hammer: Possible Implementation

- ConnectorCommon trait have been implemented for the connector. 
- This trait contains `get_currency_unit` method. This method needs to be implemented. 
- It will define what type of conversion needs to be done during `connector_router_data` creation. Concurrently handle the creation of `connector_router_data` to be passed for the connector request body creation.
- You can check this PR for further reference https://github.com/juspay/hyperswitch/pull/2196

:bookmark: Note: All the changes needed should be contained within `hyperswitch/crates/router/src/connector/`

### :package: Have you spent some time checking if this feature request has been raised before?

- [X] I checked and didn't find a similar issue

### :package: Have you read the Contributing Guidelines?

- [X] I have read the [Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)

### :sparkles: Are you willing to submit a PR?


Resolution:
<think>
PR Context:
- Title: feat(connector): [NMI] Currency Unit Conversion
- Merged: 2023-11-05T11:46:45Z
- Files changed: 2 files
- Commits: 14 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
- Addressing Issue: #2236 
- Modified two files in `hyperswitch/crates/router/src/connector/`
  - `nmi.rs`
    - Implement `get_currency_unit` function
    - Modify `ConnectorIntegration` implementations for `Nmi`
  - `nmi/transformers.rs`
    - Implement `NmiRouterData<T>` stru
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(connector): [NMI] Currency Unit Conversion (#2707)
Files to modify:


**crates/router/src/connector/nmi.rs**
  Add:
    - function: private::get_currency_unit

**crates/router/src/connector/nmi/transformers.rs**
  Add:
    - function: private::try_from
    - struct: pub::NmiRouterData
    - impl: impl TryFrom<(
        &types::api::CurrencyUnit,
        types::storage::enums::Currency,
        i64,
        T,
    )> for NmiRouterData<T>