This is the final clean-up of the buffer block structures. With this series we just create two arrays to begin with and drop the combined array. Note to avoid code churn and regressions I intend to squash patches 1-4 before pushing I've just sent them split up to make reviewing easier.