vec: replace some `as_mut_buf` with `to_mut_ptr`
iterator: add an Extendable trait