updated dependencies
memory usage optimization by avoid decoupling of arc_object_t and cached_object_t structures

such structures always exist in couples and allocating the memory for them at different times
increases fragmentation considerably. Since the existance of one depends on the other,
the API has been extended to allow defining the size of the structure being actually cached by
the arc subsystem at creation time, so that the subsystem itself will take care of prealloc
the memory where to store the cached structure before calling the arc_ops_create() callback.

This change doesn't prevent the code using the arc subsystem to cache data which needs dynamically
allocated memory ... this can still be achieved by using a pointer in the cached structure and make
it point to the dynamic memory if necessary.

The creation/destruction pattern is unchanged.

Binding these two structures together allow also the implementation of some more clever slabs-based strategy
involving pre-allocation of buffer pools which would mitigate fragmentation even more.