use random() instead of rand()
minor cleanings in the cached_object structure

removed an unused pointer to the arc cache opaque structure
and made the key a weak reference instead of a copy since
the arc resource (holding the actual key) will always live longer
than the attached cached object