fix a race condition

It was potentially happening if an object was being retreived
while an eviction was in progress.
Basically shardcache_get() could have ended up retreiving an object
which was just evicted (by acquiring the lock on the object just after
arc_ops_evict_object() released it) and hence adding itself
as listener while the object wouldn't have been retreived anymore.

A new state has been added in the cache_object_t structure to
notify whoever is waiting to lock the current object that it has
been evicted and hence to ignore it.