Rollup merge of #158546 - bushrat011899:alloc_io_bufread, r=clarfonthey

Move `std::io::BufRead` to `alloc::io`

ACP: https://github.com/rust-lang/libs-team/issues/755
Tracking issue: https://github.com/rust-lang/rust/issues/154046
Split From: https://github.com/rust-lang/rust/pull/156527
~~Blocked On: https://github.com/rust-lang/rust/pull/158545~~

## Description

Moves `std::io::BufRead` to `alloc::io`. This is effectively a direct cut and paste, but with a large diff due to how many implementations need to be moved into `alloc`. Blocked on rust-lang/rust#158545.

---

## Notes

* No AI tooling of any kind was used during the creation of this PR.
* Please see https://github.com/rust-lang/rust/issues/154046#issuecomment-4416678427 for a review order and broader context for this PR.
diff --git a/tests/pass/panic/unwind_dwarf.rs b/tests/pass/panic/unwind_dwarf.rs
index 3631c3f..aaecacd 100644
--- a/tests/pass/panic/unwind_dwarf.rs
+++ b/tests/pass/panic/unwind_dwarf.rs
@@ -27,7 +27,7 @@
         _uwe: uw::_Unwind_Exception {
             exception_class: miri_exception_class(),
             exception_cleanup: Some(exception_cleanup),
-            private: [core::ptr::null(); uw::unwinder_private_data_size],
+            private: [core::ptr::null(); _],
         },
         cause: data,
     });