When performing a set of batch operations, some callers need to enforce that a query has specific values. For example, when persisting edited Contact values, we need to assert that the RawContacts.VERSION matches the version we read out through queryEntities(). This change adds a new TYPE_ASSERT that uses withValues() and withSelection(), and checks all values when applying the batch operation, bailing if any values don't match.