Add a Buffer template to util.h

This is a small template wrapping a memory buffer containing objects of an arbitrary type. The template is able to use custom allocators like `std::allocator` or `tbb::scalable_allocator`