def cas(key, ttl=nil, options=nil, &block)
      cas_core(key, false, ttl, options, &block)
    end
def cas(key, ttl=nil, options=nil, &block)
      cas_core(key, false, ttl, options, &block)
    end
compare and swap values using optimistic locking.
 Fetch the existing value for key.
 If it exists, yield the value to the block.
 Add the block's return value as the new value for the key.
 Add will fail if someone else changed the value.

 Returns:
 - nil if the key did not exist.
 - false if the value was changed by someone else.
 - true if the value was successfully updated.