provide a version of ATOMIC_SET() which allow an extra conditional

which can abort the CAS operation
got rid of the expire_lock

since now the next_expire member is accessed only using the atomic builtins

minor cleanings along the way
bugfix: ensure setting the next_expire if actual value is 0

was introduced in last commit when switching to the atomic builtins
test setting/expiring of volatile keys