more thread-safe dictionaries

Following from #1794, I’m attempting to take advantage of the new `QSThreadSafeMutableDictionary` in other places.

Basically, I searched for `@synchronized`, checked to see if it was done to protect a dictionary and if so, used the new class instead. We weren’t using `@synchronized` around the `meta` dictionary anywhere, but probably should have been, so I converted that one as well.

While making the changes, I noticed we’re calling `@synchronized(iconLoadedSet)` in `purgeImagesAndChildrenOlderThan:`, but not in `setIconLoaded:`. Should I fix that here?

(Actually, I think we could drop `iconLoadedSet` completely and just enumerate `QSLib.objectDictionary` checking for `flags.iconLoaded`.)