Don't free vectors in their dtor

Merge/rebase error from DST. Thanks to @eddyb for finding.

Closes #16826 (I hope)

r?
iter_vec_raw was changed to take the length of the vec, not the fill (len*size_of_element) and get_fill was replaced with get_len