Cache calls to collection.size

`col.size` was called twice for each record in each collection when
displaying the progress.

For larger collections this leads to huge performance hits when syncing
most often ending up in timeouts.
Merge branch 'memoize-collection-counts'