feat(core): implemented platform merchant account

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [X] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
#### About the feature
- This the first PR for the Platform Account feature.
- Feature is under development and behind the feature flag. 
- Feature is supposed to be disabled for sandbox and production environments.
#### Enabling the platform account.
- New API has been created to enable platform account.
- API requires Admin API auth.
- Once enabled, there is no way of disabling platform account as of now.
#### How it works
- A new special header is to be sent by the platform called `x-connected-merchant-id`.
- Platform will use its own API key irrespective of the merchant id present in the above header.
- Value of this header is supposed to be the merchant id of the merchant account on behalf of which the platform is performing the operation.
- **If the platform has `is_platform` true and the merchant account on behalf of which operation is performed belongs to the same organisation as platform** then the operation is allowed.
#### Payment Intent
- Operation will be performed for merchant id present in the `x-connected-merchant-id` header.
- `platform_merchant_id` column for the payment intent will be populated with platforms merchant id.
#### Other operations
- Will add context of `platform_merchant_id` in other operations as well.

<!-- Describe your changes in detail -->


### Additional Changes

- [x] This PR modifies the API contract
- [x] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are the paths where you can find config files:
1. `config`
2. `crates/router/src/configs`
3. `loadtest/config`
-->


## Motivation and Context
#6883 
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you don't have an issue, we'd recommend starting with one first so the PR
can focus on the implementation (unless it is an obvious bug or documentation fix
that will have little conversation).
-->


## How did you test it?
1. Create a merchant account(m1).
2. Use below api to convert it into platform account.
```sh
curl --location --request POST '<BASE URL>/accounts/{merchant_id}/platform' \
--header 'api-key:<ADMIN API KEY>'
```
3. Create another merchant account in the same organisation(m2).
4. Do a payment using platform's(m1) API key for connected merchant account(m2) by passing header `x-connected-merchant-id` with value as connected merchant account's merchant id.
5. Check if payment is created for connected merchant account.
6. Check if `platform_merchant_id` is populated with platform's merchant id.
<!--
Did you write an integration/unit/API test to verify the code changes?
Or did you test this change manually (provide relevant screenshots)?
-->


## Checklist
<!-- Put an `x` in the boxes that apply -->

- [X] I formatted the code `cargo +nightly fmt --all`
- [X] I addressed lints thrown by `cargo clippy`
- [X] I reviewed the submitted code
- [ ] I added unit tests for my changes where possible

<think>
PR Context:
- Title: feat(core): add platform_account creation API 
- Merged: None
- Files changed: 13 files
- Commits: 20 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
#### Precursor PR 
#6882 (This PR has the context of platform merchant account and initial code changes).
#### Enabling the platform account.
- New API has been created to enable platform account.
- API requires `JWTAuth` with `OrganizationAccountWrite` permissions.
- Once enable
</think>

To implement this, you'll need to modify:


(No detailed commit information available)
{"issue_number": 6882, "pr_number": 7213, "commits_count": 0, "files_changed": 13, "response_length": 762, "file_count": 0, "needs_breakdown": false}