[subtitles] check and get idx/sub pair when download.
[coreSubs] proper fix for cf85bdb , select services list if no subtitles are found
VideoInfoScanner::EnumerateEpisodeItem: don't use ToLower with UTF-8 strings, fixes #14728
Not needed as RegExps are done in caseless mode
Merge pull request #3764 from FernetMenta/mpegts

ffmpeg: backport mpegts fix for dts jumping backwards (trac 14622)
[lang] update of internal addon language files
[lang] update of core language files
[lang] update of skin.confluence language files
Merge pull request #3768 from taxigps/subtitle_addon

[subtitles] check and get idx/sub pair when download.
Merge pull request #3750 from Karlson2k/update_utf8_check

Update UTF-8 string check
Revert "[nfs] - better fix for fe97d68f87d6985b2bf57d8e942b36b5e7373066 - possibly fixes #14727 - thx jm for the idea :)"

This reverts commit dd4dd2e91bc083a23fe7b46ae4c291c6672d32e0.

This commit created issues comparing paths when the export and the path was the same and did not contain a trailing slash, in addition, it removed the correct reversal of ordering of m_exportList generated by GetExportList.

Reference: http://trac.xbmc.org/ticket/14727#comment:12
CArchive: fix log report introduced in 643133d433bdeb9089c73887391d81dde85c763c
[info] CStdString -> std::string
[info] ToLower() an infobool expression prior to searching to save unnecessary caseless comparisons
[info] splits InfoSingle/Expression out from InfoBool.h
[info] Made CGUIInfoManager::Register() return a shared_ptr to the InfoBool object
rather than an index into its cache of such objects. All places where
those index integers were stored are changed to store shared_ptrs, and
CGUIInfoManager::GetBoolValue() now accepts them instead.

This permits the lifetime of a registered bool to persist across calls of
CGUIInfoManager::Clear(), if necessary.
[controls] GetVisibleCondition is only ever used to check if a visible condition exists, so replace with HasVisibleCondition
[info] use std::find_if() to find previous infobool
[info] ensure we clear the window's conditional includes and visible condition on unload
[info] Add selective caching of infobools in list items

As noted in a TODO comment attached to CGUIInfoManager::GetBoolValue, caching
of infobools (both expression and single bools) is disabled whenever a
CGUIListItem pointer is provided. This is true whenever visibility is
evaluated for a control which is part of a list item (which is responsible
for a large portion of the controls in many windows), which obviously hurts
cache efficiency. However, many of the bools (including the leaf nodes of
expression infobools) aren't actually dependent upon which list item they're
attached to.

This patch adds a flag to each InfoBool object to indicate whether its value
depends upon the list item; if this isn't set, then the cache is re-enabled
even if a CGUIListItem pointer is provided. The flag is calculated at parse
time because it's quite tricky to evaluate - it applies to bools in any of
the following categories:
* a statically definied boolean condition in the range LISTITEM_START to
  LISTITEM_END - for example, "ListItem.IsResumable"
* a (dynamically allocated) multi-info bool, that is to say, the result of a
  string or integer operation on a list item attribute - for example
  "substring(Listitem.mpaa,Rated R)"
* an expression that uses one or more of the above - for example
  "Window.IsVisible(Videos) + !ListItem.IsResumable"

I measured the effect while the Videos window of the default skin was open
(but idle) on a Raspberry Pi, and this reduced the CPU usage by 3.2% from
45.1% to 41.9%:

          Before          After
          Mean   StdDev   Mean   StdDev  Confidence  Change
IdleCPU%  45.1   1.2      41.9   0.5     100.0%      +7.7%
[info] Have the infomanager invalidate infobools so that classes that hold them can call the infobool directly rather than going via the infomanager