InternalPartition replica addresses should be updated atomically

InternalPartition replica addresses should be updated atomically instead of one-by-one to avoid inconsistent partition table reads. Also there's no need to update addresses using a CAS since InternalPartition update methods are called under InternalPartitionServiceImpl.lock.

Fixes #4256