KFileItemModelRolesUpdater: only update the size for changed folders

When using inotify, we also receive signals for modified files, even if
we only ask KDirWatch to watch the directory containing them. In that
case, we must not set the size to -1 (which means "unknown number of
items" for folders) temporarily, or we end up with an apparent file size
of 2^64 - 1 bytes.

BUG: 309740
FIXED-IN: 4.10.4
REVIEW: 110428
Do not reset the 'isExpanded' state when an expanded folder is refreshed

If an item is moved out of an expanded folder, the model receives the
dir lister's refreshItems signal for the folder. The method
retrieveData() then updates the folder's properties. This commit makes
sure that the 'isExpanded' state is not touched by retrieveData(). A
side-effect is that the 'isExpanded' role is not initialized to 'false',
but this does not matter because trying to read a non-existing role from
the QHash<QByteArray, QVariant> yields a default-constructed QVariant,
which evaluates to 'false'.

BUG: 299675
FIXED-IN: 4.10.4
REVIEW: 110401
Cleanup.

Abusing the saved positions system to cope with theme changes
is no longer necessary now that updateGridSize() no longer
throws out position data.
Disable icon shrinking on mouse press in single-click mode.
Don't draw the focus rect.
Never show selection markers.
Hide desktop toolbox.
Disable icon shrinking on double-click.
Clear selection after double-click activation.
Fix crash in non-containment case.