Support read-only allocator for use with initializers (#25348)
### Description
<!-- Describe your changes. -->
Add new allocator type of OrtReadOnlyAllocator to enable providing a
separate allocator that is only used for initializers.
Update the SessionState logic to support this allocator type being
provided, and use it when doing device allocations for initializers.
### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
Performance.