Use Linux slab allocator for small allocations

The Linux allocator is more memory-efficient and packs objects more tightly
than the SPL slab allocator. For small objects (which typically get only 1
page used for the object allocations themselves) use the kernel allocator.

For example for an object 184 bytes large both Linux and SPL use 1 page for
allocations but SPL only fits 18 objects whereas Linux fits 22. Also
an object 40 bytes large can fit 102 objects in the Kernel slab but
only 50 in SPL.

(Is it ready? Maybe. I'm using it.)