Issue:
feat(users_roles): support switch for new user hierarchy

Support switch
- At org level
- At merchant level
- At profile level 
- For internal users

Issue new token and set permissions accordingly

Resolution:
<think>
PR Context:
- Title: feat(user_roles): support switch for new hierarchy
- Merged: 2024-08-28T08:25:55Z
- 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
Support switch for org, merchant, profile and internal users.
For now switch exist only for merchant.

After new switch, new token will be issued.


### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modif
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(user_roles): support switch for new hierarchy (#5692)
Co-authored-by: hyperswitch-bot[bot] <148
Files to modify:


**crates/api_models/src/events/user.rs**
  Modify existing code

**crates/api_models/src/events/user_role.rs**
  Modify existing code

**crates/api_models/src/user.rs**
  Remove:
    - struct: pub::SwitchMerchantIdRequest
  Add:
    - struct: pub::SwitchOrganizationRequest
    - struct: pub::SwitchMerchantRequest

**crates/api_models/src/user_role.rs**
  Remove:
    - struct: pub::TransferOrgOwnershipRequest

**crates/router/src/core/user.rs**
  Add:
    - function: pub::switch_org_for_user
    - function: pub::switch_merchant_for_user_in_org
    - function: pub::switch_profile_for_user_in_org_and_merchant

**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::switch_org_for_user
    - function: pub::switch_merchant_for_user_in_org
    - function: pub::switch_profile_for_user_in_org_and_merchant

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

**crates/router/src/utils/user_role.rs**
  Add:
    - function: pub::set_role_permissions_in_cache_by_role_id_merchant_id_org_id

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