Merge pull request #3348 from ronie/artists-with-an-s

fix broken artists node in musicvideos
Merge pull request #3345 from FernetMenta/activefix

ActiveAE: check for sink errors on AddPackets
[LangInfo] Load preferred audio/subtitle setting during the startup.
Merge pull request #3329 from ace20022/lang_fixes

[Fix] Fix preferred audio/subtitle language mechanism.
Merge pull request #3341 from MartijnKaijser/a9

[release] version bump to 13.0 alpha9 as we start new merge window.
Merge pull request #3310 from MartijnKaijser/addon_dependencies

bump addon dependencies to reflect changes done so far
Merge pull request #3315 from MartijnKaijser/remove_addon

[addons] remove unused sqlite dummy module
Merge pull request #3271 from MartijnKaijser/remove_label_subnetaddress

remove depricated "subnetaddress" gui label
Merge pull request #3330 from ronie/weather-provider-logo

[Confluence] add weather provider logo
Merge pull request #3284 from Karlson2k/win32_7zip_update

Win32: update 7zip binary package
Faster substring comparisons

There were nearly 200 places in the code where testing for a substring was
being performed using a construct of the form
  CStdString::Left(len).Equals("string")
or the related CStdString methods Mid or Right. These are bad for performance
because they involve allocating a heap block for the duration of the
expression evaluation, for the purpose of holding the substring, and then
freeing it again.

These would need replacing anyway because CStdString is being phased out
(PR #3225), and there is also the maintainability issue that developers need
to keep the string lengths in step with the string literals. This latter
point is also true of a number of instances in the code of
  std::string::compare(0, len, "string") == 0

Now that the StartsWith() and EndsWith() methods in StringUtils have been
made more efficient, it is worth replacing both the above constructs with
such calls. This patch does so, using the case-sensitive versions where
std::string::compare was used, where the bUseCase parameter was specified
true in Equals() calls, or where the string literal passed to Equals()
contained no alphabetic characters. For the sake of compatibility, the
remaining calls have been left using the case-insensitive versions ("NoCase"
suffix to the method name), although these may be worth reviewing on a
case-by-case basis.

The majority of the changes here were achieved using a sophisticated search
and replace, which will hopefully minimise any bugs introduced in the
conversion.

This patch is expected to have wide-reaching performance benefits. One
benchmark (that can't pretend to exercise all ~200 improvements) is the time
to open the songs library: on a Raspberry Pi, this patch improves this time
by 12% (down from 13% for a previous version of this patch that also reduced
the number of calls to tolower()).
Merge pull request #3283 from Karlson2k/win32_small_cleanup_01

Win32 small cleanup
Merge pull request #3290 from bavison/faster_substring_comparisons

Faster substring comparisons
Merge pull request #3286 from ace20022/tokenize

Move TokenizeStringUtils and replace CStdStrings by std::strings.
Merge pull request #3344 from davilla/amcodec-guisettings

changed, add a proper GUI selector for AMLogic video decoder, refactor AMLogic bits in AESinkAUDIOTRACK
Merge pull request #3293 from t-nelson/pivos_fs

Pivos file system changes
Merge pull request #3298 from t-nelson/pivos_wait_for_android_egl_window

Pivos wait for android EGL window.
Merge pull request #3299 from t-nelson/pivos_android_generic_hw_queries

droid: add generic hardware queries and hook them up to new Build class
Merge pull request #3266 from wsoltys/mingwupdate

[mingw] updated w32api and mingwrt to 4.0.1 and some cleanup
Merge pull request #3232 from Karlson2k/Startup_log_03

Put even more information in startup log