Duplicated Buffers now have their own pos / used / size values

This allows multiple constructs to read from the same underlying
buffer in memory.