Comment out old ip3k messages menu code to save a query

Change-Id: I13e20590ce5c53ae26cc9e62c5edbe1f14723bb5
Fix wasted check for the wrong timeFormat pref on SN

Change-Id: I396a5990c11c8ad3df989ef1b020e54b04eae841
Change prefs->init() to init a value if it already exists but is undef. This happens a lot on SN and causes extra database queries.

Change-Id: Iebfba16d58fd6037ee840b6a1d859c5a80e51391
Fix date/time display preference on ip3k players

We have some mix of all lowercase timeformat and mixed case timeFormat
preferences on mysb.com. As MySQL treats them the same, but the caching
level does not, some changes never make it to the database, thus are
reset at every player reconnection, or, worse, don't apply at all (when
doen through the web UI).

Add a clientMigrate handler to _remove_ the old preference before
adding it back with the correct name.
Merge branch 'hotfix/timeFormat-preference' into public/7.7
Merge branch 'public/7.7' into public/7.8
Add LMS local image proxy to be used with external image resources

New /imageproxy/{image url}/image.jpg proxy handler to have external
artwork resized and cached in LMS instead of mysb.com based image proxy.
This allows to use network local resources which would fail with the
external proxy.

Some services provide artwork in various resolutions, or even offer
their own resizing service. A custom artwork handler for such services
can be used to optimize bandwidth and processing requirements. There's a
sample implementation for the TuneIn plugin which would download the
smallest available artwork to still fit the client's needs.

In order to make all calls to external resources use the image proxy,
methods dealing with artwork urls should call
Slim::Web::ImageProxy::proxiedImage($url) to make sure the client is
using the proxy. XMLBrowser, status queries etc. have been modified to
do so. This should allow clients (player, web UI, Squeezeplay, mobile
apps etc.) to work with the new proxy without any modification.
Use custom cache for the ImageProxy, as the artwork does not expire

Add custom caching class based on ArtworkCache, but allowing content to
expire. Expiry set to 30 days, running daily cleanups.
Artwork cache is never wiped, leading to infinite growth

We need to make sure the DB is always correctly initialized before we
trigger any action. When running the scanner, this had not happened
before wipe was called, thus skipping this task.
Merge branch 'public/7.7' into public/7.8
Remove log statement
Merge branch 'public/7.7' into public/7.8
Merge branch 'public/7.8' into public/feature/imageproxy
Make use of LMS internal image proxy optional

As long as mysb.com is around, we don't have to force all external image
resources through the local proxy. Only if a custom handler (as eg. for
radiotime) is defined it's being used.

The $force parameter can be used to pass in non-http URLs.
No longer rely on mysb.com for internet radio

Implement TuneIn in LMS locally.
Clean up InternetRadio/RadioTime plugins

- cut some slack from InternetRadio
- move TuneIn specific code from InternetRadio to RadioTime
- grab username from mysb.com if it isn't defined in LMS yet
Use the same string tokens as on mysb.com to prevent link duplication
Fix TuneIn Presets browsing in the web UI
Resize album artwork in web UI too.

Need to extend the regex to not only cover icon.jpg, but cover or
image.jpg as well
Add prefix to temporary images stored in the cache folder