Update set.c

Modify set_radd's logic. When given @key exists in the set and its address is different from the existing key's, @key will be freed.