Replace candidate instead of setting a new sock_addr, this way the

__hash__() return value will never change for the same object.
Remove sock_addr setter as it shouldn't be modified once the Candidate
has been created.