still minimizing retention by making the obj locking more granular

obj->complete is now safe to access using the atomic builtins without
requiring to lock the whole object ... the data and dlen member as well
as the evicted member still need to be accessed only when the lock is acquired.