Function iter_next_chunk_erased

pub(in ::array) const fn iter_next_chunk_erased<T>(buffer: &mut [MaybeUninit<T>], iter: &mut impl ~const Iterator<Item = T>) -> Result<(), usize>

Version of iter_next_chunk using a passed-in slice in order to avoid needing to monomorphize for every array length.

Unfortunately this loop has two exit conditions, the buffer filling up or the iterator running out of items, making it tend to optimize poorly.