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.
Add auto-scrolling for containers
Add setArt() for python listitems

Python version bump to 2.14.0
ActiveAE: check input stream for ffmpeg channel order, remap if it does not match
[AE/CA] - allow a reinit on lost device. should harden our recover when hdmi input is switched away / should fix issues especially found on mavericks when doing so (e.x. switching the TV input away from xbmc and back)
[osx] - connect the hide to the cmd+h shortcut as it was ment to be since ages
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.
add missing icon for metadata.local
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
[DROID][AE] Rewrite AudioTrack sink using pull model
[DROID][JNI] Add AudioFormat class bits.
[DROID][JNI] Add AudioTrack class bits.
[DROID][JNI] Expose constant from AudioManager.

We need it for AudioTrack sink.
[DROID][AE] Replace raw JNI with CJNIAudioTrack.
[AE] Add comparison operator to AEAudioFormat
[DROID][AE] Only restart the sink when necessary.
Merge pull request #3846 from FernetMenta/aefixes

ActiveAE: check input stream for ffmpeg channel order, remap if it does ...