Simplify cache concurrent item creation policy

Now, instead of destroying the item if another with the same key was in the
hash table, that item is returned as a floating item with only one
reference.  The first unref will destroy the item.  Less locking, less
gotos, less redoing stuff.