Bump collectionChanges even if we failed to retrieve the entry.
This ensures that we don't end up processing very large collections in
one go, thus risking running into php max_execution_time limits.
This became a problem with large folders starting to sync but then
getting disabled, which resulted in ~60k messages in the cache that were
no longer available.
Because processing took more than the default 30s execution timeout the
synchronization would get stuck in an endless loop (failing to complete
and then receiving the same sync request).
We also Only store newContentStates if we are actually sending the entry to the
device. Otherwise we will end up with entries that are supposed to be on the
device, but aren't, and thus probably aren't ever cleaned up either.
Differential Revision: https://git.kolab.org/D2056