This fixes the infamous "desktop positions partially scramble on reboot"
bug that occurs when KDirLister completes listing in multiple model
transactions.
This also:
- Disallows moves and drops while listing, for extra safety.
- Cleans up wonky old defer-sometimes code that made little sense.
- Removes a cache for lastRow() that was never actually used.
BUG:354802