Handles allocating Iobuf.t and making sure there's enough space in it.
val get_header_chunk : unit ‑> (Core.read, _) Core.Iobuf.tAll of these will push the current chunk into the list of previous chunks first; a new chunk will then be allocated on the next write.
val get_chunks : unit ‑> (Core.read_write, Core.Iobuf.no_seek) Core.Iobuf.t list