First attempt at implementing an Allocation pool

Now we just need to work out what to do in the three callbacks
depends on #951
"Size" is a poor choice of name, is it size in bytes, size in number of elements, size of an individual element in bytes, or what?