New classes: SFSyncOptions and SFSyncTarget (instead of NSDictionary)

Added enums for sync type, sync status and query type
Not sure I understand.  The atomicity of the property has to do with whether or not it needs to be thread-safe/exclusive in its access.  Most properties don't need to be `atomic`, unless it's expected that they'll be changed frequently by multiple concurrent threads.  Otherwise, it's just locking overhead.