Separate alloc/free logic for different pool types, add core-local free item caches for shared pools.