The concept of generic allocators, previously used locally in gary's,
turned out to be very promising and applicable to other data structures
in the future.
So I decided to decouple allocators from gary.[ch] and introduce them
to the society of libucw primitives.
<ucw/alloc.h> now provides allocators for malloc and zeroed malloc,
each mempool can also serve as an allocator (the current implementation
has an instance of struct ucw_allocator in each struct mempool, but
it is always accessed through an inline function, so it can be changed
if the overhead is deemed too heavy).
Growing arrays have been redefined in terms of generic allocators.
The realloc module has been merged to alloc.c to keep our malloc
wrappers together.