Fix over-deletion in AbstractConnection::setSite

If the old and new sites are the same one, the given
site will be over-deleted. This situation can happen
when reconnect is invoked.

Add a guard to prevent this situation.

Fix #41