cleanings

all arc operations callbacks (and related logic) have been moved
to arc_ops.[ch] since shardcache.c was becoming huge.

shardcache internals are temporarily 'exposed' in shardcache_internal.h
(only internally to the libshardcache project) so that the routines in
arc_ops.c can access the counters and some other few members.

NOTE : even if it's not a big deal to keep the shardcache_t structure
visible inside the project it would be nicer in the future to encapsulate
arc_ops operations in a context (with a _create() and _destroy())
so that it won't be necessary to directly access the members in the
shardcache_t structure.