Implement a window ID cache

In the course of each refresh of the visibility of controls (which is
performed every frame), there are many calls to CGUIWindowManager::GetWindow
to convert from a window's integer ID to a pointer to the corresponding
CGUIWindow pointer. This involves acquiring a lock and performing a tree walk.
Yet in practice, the same ID is looked up many times in succession, so this
benefits from a simple cache of the most recently checked ID.

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

          Before          After
          Mean   StdDev   Mean   StdDev  Confidence  Change
IdleCPU%  46.6   0.9      45.1   1.2     99.8%       +3.3%
CGUIWindowManagerIdCache now defined within the scope of CGUIWindow.
CGUIWindowManagerIdCache::Get now has a single return value.
Slightly less bright white which is easier on the eyes.
Add auto-scrolling for containers
[AML] Fix pts error correction logic
paplayer: fix caching of streams into AE
Fixed: prevent the querystring from being stripped if no sub streams are found in a m3u8 playlist.
Add setArt() for python listitems

Python version bump to 2.14.0
Typos fix try 2

Only typos that are not part of 3rd party

https://github.com/xbmc/xbmc/pull/3862 went pearshaped this is best
attempt.
ActiveAE: Remove Channel Handling from Engine (player's job)
[ffmpeg] - backport - avcodec/aacdec: default to non-wide 7.1 in non-strict mode

Upstream commit e10fccf62a36e09b54ad6ea3d5fa6638f298d5ae, for
http://trac.xbmc.org/ticket/13758.

AAC specification has 7.1(wide) as a default layout for 8-channel
streams (channel config 7). However, at least Nero AAC encoder encodes
non-wide 7.1 streams using the default channel config 7, mapping the
side channels of the original audio stream to the second
AAC_CHANNEL_FRONT pair in the AAC stream. Similarly, e.g. FAAD decodes
the second AAC_CHANNEL_FRONT pair as side channels, therefore decoding
the incorrect streams as if they were correct (and as the encoder
intended).

FFmpeg currently decodes such files by-the-spec, i.e. after decoding the
original front pair will be in AV_CH_FRONT_x_OF_CENTER and the original
side pair will be in AV_CH_FRONT_x.

As actual intended 7.1(wide) streams are very rare while misencoded 7.1
files actually exist in the wild, default to assuming a 7.1 layout was
intended unless in strict mode.

Fixes playback of e.g. 8_Channel_ID.m4a in samples.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffmpeg: add backported AAC7.1 patch to patches directory
Merge pull request #3838 from fritsch/aefixes2

AESinkALSA: Workarounds for formats don't belong to the sink
[repos] cosmetics: use temporary variable for the add-on being processed
[repos] update the broken status only if we don't have a newer add-on installed (or in the database)
[repos] cosmetics: indenting
[repos] process only the most up to date version of add-ons across all repositories
Merge pull request #3865 from uNiversaI/master

Typos fix try 2
Merge pull request #3674 from bavison/faster_window_lookup

Implement a window ID cache
Merge pull request #3842 from Black09/directoryprovider

Add setArt() for python listitems