always do expensive icon loading on a background thread
consolidate `setIcon` and `updateIcon`

The previous commit starts icon loading on another thread, but for the
UI to know when the icon is ready, every instance of
`loadIconForObject` would have to be modified to call `updateIcon`.
Almost all of them currently call `setIcon`. This should allow
`setIcon` to correctly handle updated icons, but without sending a
notification every time it's called.
don't spawn another thread for web search icons

loadIconForObject is already on a background thread
remove the `previewIcon` method

For file objects, `loadIconForObject` was doing two things: loading a
more generic icon that can be gotten to quickly, then calling
`previewIcon` to handle the more expensive preview generation in the
background. The first task is the job of `setQuickIconForObject`, so
that code has been relocated to that method. The expensive preview
generation was moved from `previewIcon` to `loadIconForObject`, since
it always runs on a background thread now.
post the notification *after* an icon is changed
don't bother logging for updateIcon

It was used in very few places.
don't notify the UI when icons are cleared
Merge pull request #1369 from skurfer/bgIconLoading

background icon loading