title: DiffableDataSource does not update properly after applying changes in snapshot
body: <p>I'm trying to filter a list of users in a TableViewDiffableDataSource. The filtered array of  users is passed to the following function:</p>
  <pre><code>private func updateUserCell(_ users: Users? = nil) {
  
          guard let newUsers = users else {
  
              print(&quot;No users to show&quot;)
  
              return
  
          }
  
          snapShot.deleteItems(viewModel.userList)
  
          dataSource!.apply(snapShot, animatingDifferences: false)
  
          if newUsers == [] { return }
  
          var snapShot = dataSource?.snapshot()
  
          snapShot?.appendItems(newUsers, toSection: .main)
  
          dataSource!.apply(snapShot!, animatingDifferences: true)
  
      }
  </code></pre>
  <p>Debugging shows that the users get appended correctly in the snapshot. But applying shows correct number of filtered users but only the users from the top of the complete list.</p>
  <p>i.e. if I have a full list of users [Chloe, Max, John, Martin]. Searching for &quot;jo&quot; only shows Chloe.
  Searching for &quot;ma&quot; shows Chloe and Max instead of Max and Martin.</p>