First attempt at implementing an Allocation pool

Now we just need to work out what to do in the three callbacks
depends on #951
We declare member variables first, then functions (per each visibility section), you should move this to right below `m_Sections`.