Abstracting Synchronization in Concurrent Constraint Programming