bfb57b4e1e
Factor out the duplicated sync logic from syncAddresses(), syncPhones(), and syncEmails() into a single generic syncSubEntities() method that accepts callables for fetch/update/create/delete operations. Each specialized sync method is now a thin ~10-line wrapper. (Closes #204)