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
paplayer: fix caching of streams into AE
[AE/CA] Only restore the default format if we ask for it.
[AE/CA] Simplify the ResetAudioDevices code and make sure it actually works

The old code failed to reset devices set in Encoded mode and it was
going about it in a fashion that duplicated a lot of code. This removes
all the custom code and uses already exisisting functions and that
actually makes the code functional.
[fix] Remove unused parameters eliminating bw compatibility.
[fix] xbmcgui.Window default constructor fixed. Closes #14754
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
ActiveAE: check input stream for ffmpeg channel order, remap if it does not match
[Fix][HttpResponse] Fix  %d in format string (no. 1) requires 'int' but the argument type is 'unsigned int'.
[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)
Merge pull request #3818 from Memphiz/osxresetaudio

[osx/ae/ca] - fix ResetAudioDevices
[osx] - connect the hide to the cmd+h shortcut as it was ment to be since ages
[confluence] DialogYesNo.xml: replace 3 separate lines with a textbox
videodb: use single text instead of two separate lines for "Source unavailable" dialog
peripherals: fix order of peripheral device settings
videodb: fix "Stop scanning" from context menu not working anymore since e20e7e066845538b1d071b2d4081465fc5d819cb
Merge pull request #3849 from ace20022/check_utils1

[Fix][HttpResponse] Fix possible arithmetic overflow