New slab allocator

The new slab allocator sits in lib/slab.c. It's there to provide a pool of
allocated objects of a certain size so that frequent allocations and de-
allocations are more efficient. It doesn't aim at using the cache best nor
does its implementation :-)

The slab allocator will be used in the preprocessor soon, but it won't be
too effective there for pp_{define,subst} aren't free'd that dynamically.

Note that the slabs are unaware of one another for the time being to not
require thread-safety considerations here (the entire code in this project
is to be seen as thread-unaware at this stage!) and certainly won't work
properly if the user doesn't do the locking.

I have added a quick test as lib/slabtest.c which doesn't show any errors
and look at valgrind: we allocate 16 *payload* objects and in total there
are 7 malloc()'s issued :-)