REF: simplify advance/move/set_length in libreduction
Make it so that we set `buf.data` in fewer places.  I think from here its pretty straightforward to avoid setting buf.data at all.

cc @WillAyd.
thanks