Swift CoreDataPersist or cache data on a single device, or sync data to multiple devices with CloudKit