A callgrind run showed that ProjectItemDataProvider::itemCount() is called a lot of
times when quick open is opened, but the function itself causes massive re-computation of
known values each time it is invoked.
This patches fixes this, implementing a cache for the total item count
of the data provider.
Testing: After a second callgrind run
ProjectItemDataProvider::itemCount() no longer showed up as an expensive
function.