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
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.
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
fixed: Incorrect length calculation for keywords from IPTC tags in which could result in a buffer overflow.
Merge pull request #3792 from Black09/auto-scrolling

Add auto-scrolling for containers