BufferInfo seems to know "stuff" about the buffers used. I'd like to see if it can be removed. For example the datatype of the intermediate buffer (if any) should be part of the writer, since it's in control of the layout of the memory sent to HDF5. It's also where a dimension gets stripped for certain char arrays, and the ASCII/UTF-8 hack is enforced.
This would allows us to progress on #918 and maybe remove a lot of complexity.