fixed an edge case which would have made arc_lookup() return an object ready to be released

was caused by a race condition which is now solved within arc_lookup()
The key for the object is now initialized directly in the object constructor
so it won't happen anymore that an incomplete object is being put in the internal
and/or returned
introducing volatile keys (which can be assigned an expiration time)

implementation is still in progress and hence incomplete
updated to work after last changes in libshardcache

some bugfixes as well