Issue:
refactor: Separate out totp completion from verify

Currently,`verify_totp` is the terminating 2fa API and also it was setting the TOTP status as "SET". 

So , we want to separate the logic of terminating the 2FA to a separate API so that the job of the `verify_totp` API will only be to verify if the totp is valid or not which will also help in reusing it inside dashboard.

Resolution:
<think>
PR Context:
- Title: feat(users): Create terminate 2fa API
- Merged: 2024-05-23T12:15:58Z
- Files changed: 10 files
- Commits: 8 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
Currently completion of 2fa and setting the status of the 2fa status as "SET" is handled by `verify_totp` API. We want to remove this from `verify_totp`, so this PR creates a new API to terminate the 2fa flow.


### Additional Changes

- [X] This PR modifies the API contract
- [
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(users): Create terminate 2fa API (#4731)
Files to modify:


**crates/api_models/src/user.rs**
  Add:
    - struct: pub::SkipTwoFactorAuthQueryParam

**crates/router/src/consts/user.rs**
  Modify existing code

**crates/router/src/core/errors/user.rs**
  Modify existing code

**crates/router/src/core/user.rs**
  Add:
    - function: pub::terminate_two_factor_auth

**crates/router/src/routes/app.rs**
  Modify existing code

**crates/router/src/routes/lock_utils.rs**
  Modify existing code

**crates/router/src/routes/user.rs**
  Add:
    - function: pub::terminate_two_factor_auth

**crates/router/src/types/domain/user.rs**
  Add:
    - function: pub::get_recovery_codes

**crates/router/src/utils/user/two_factor_auth.rs**
  Add:
    - function: pub::check_recovery_code_in_redis

**crates/router_env/src/logger/types.rs**
  Modify existing code