A generic approach to delay writing of some prefs on SN. Define a list
of prefs which shouldn't be written immediately, as changes often happen
in bursts.
Merge branch 'public/7.7' into hotfix/ss-buffered-prefs
Buffer some more prefs updates on SN.
New icons for Slacker & WiMP
Merge branch 'public/7.7' into public/7.8
Don't enforce PNG for full size artwork.

Use whatever the original was saved as, using PNG if resizing is
required. A large .jpg would create a huge .png.
Fix parsing Icy metadata

Some stations send CR/LF in the title field, causing our regex to fail.

Bug 15896
Merge branch 'public/7.7' into public/7.8
Improve Podcast progress tracking

Even if a podcast's duration is not given in the XML, once we start
playing, we do know it. Keep track of the duration in either the track
object or in the cache, so we can follow progress.
Add a pref to set a default volume adjustment for remote streams which
do not come with their own RG value. It would use track rg for all
remote sources. The default value is set to -5 (if RG is enabled).

Bug 2431
Cut some more slack from the RandomPlay plugin - don't randomize id list
whenever we access it, but request it randomized from the DB.
Disable new menu item styles if client isn't compatible.

We don't have any 7.8 radio firmware yet. The new menu styles cause the
menus to behave erratic on 7.7 and older.
Only try to get artwork if we have a valid track object
Fix "cannot request non-http url" issue when bringing up the context
menu on a remote stream

We only keep a small in-memory cache of RemoteTrack objects. Therefore
we can end up with a track which has a trackId, but no corresponding
object. Fall back to the stream's URL if we fail to get a track object.
Merge branch 'public/7.7' into public/7.8
Detect and report latest Windows versions
define fallback OS name if we don't recognize it correctly
Detect and report latest Windows versions
define fallback OS name if we don't recognize it correctly
Merge branch 'public/7.7' into public/7.8