Respect results of WOA.
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
[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.
linux: allow root user to raise priority
[fix] Remove unused parameters eliminating bw compatibility.
[fix] xbmcgui.Window default constructor fixed. Closes #14754
[airtunes] - fix - show metadata/coverart on first song aswell by delaying the update to the "OnPlay" event. (before we wouldn't set metadata/coverart because we get it before playback in our player really starts).
Add setArt() for python listitems

Python version bump to 2.14.0
[spectrum] Avoid zero height bars that cause display artefacts
[texture] - if FreeResources is called with "immediately" flag set - ensure that this texture is really invalidated - and don't deliver it on the next load from unused texture list
[gui] - don't eat messages in GUIWindowHome but pass them to the base impl.
Merge pull request #3840 from FernetMenta/linux

linux: allow root user to raise priority
videodb: don't show user credentials in source unavailable prompt during library cleaning
Merge pull request #3848 from Memphiz/airtunesanticache

[AirTunes] - fix coverart
Merge pull request #3845 from popcornmix/spectrum_depth

[spectrum] Avoid zero height bars that cause display artefacts
[Fix][HttpResponse] Fix  %d in format string (no. 1) requires 'int' but the argument type is 'unsigned int'.
[cosmetics] - fixed typo - sucess* -> success*