First attempt at implementing an Allocation pool

Now we just need to work out what to do in the three callbacks
depends on #951
Its not the maximum. Its how may elements to keep in reserve.