[win] Fix default value of vertical sync setting from disable to always.
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%
Added: HttpProxy parameter for setting proxies on stream urls.
CGUIWindowManagerIdCache now defined within the scope of CGUIWindow.
CGUIWindowManagerIdCache::Get now has a single return value.
[pvr] fix view mode not being set properly after channel switch under certain
circumstances
[rbp/omxplayer] Avoid segfault when switching fullscreen

Switching fullscreen causes a brief UnregisterAudioCallback/RegsisterAudioCallback.
If this occurs while audio thread is inside VizPacket then we segfault on dereferencing m_pCallback.

Using the m_critSection lock means the higher level test for m_pCallback will protect us.
[pvr] support for past epg data in timeline view
[epg] fix: incorrect return value in GetSelectedItem()
Slightly less bright white which is easier on the eyes.
[pvr] fix: remove wrong condition in ActionPlayEpg()
removed ambiguous m_file in CachingCodec.h
[pvr] improve implementation of OnClickList() method

* use switch case instead of if else
* use IsActive() to determine if playing the selected item
[pvr] remove unnecessary method PlayEpgItem() and use ActionPlayEpg()
instead
Add auto-scrolling for containers
[pvr] fix memory leak in QueueJob() when the job is not actually
queued
[pvr] remove redundant job name parameter from QueueJob() (it can
be deduced from the job itself)
[pvr] remove unused parameter
[rbp] Disable frame multi threaded decoded settings option

Makes no sense on Pi
[rbp] Ensure resolution infos have unique names

Currently the strMode for 2D and 3D resolutions have the same name.
This means the calibration info for a 2D mode can get replaced with a 3D mode
which can result in the pixel aspect ratio being reset to 0.5.

Also when using gui resolution clamping (i.e. 720p gui on 1080p display)
the calibration settings are scaled to gui resolution, but there is no indictation
of what the clamped resolution was when the settings were saved.

This means disabling gui clamping results in a minature gui.
(And I'd like to remove the gui clamping in the future).

Make sure all these resolutions have unique names by adding the gui resolution
and 3DSBS/3DTB to the resolution string.

Note: this will result in current calibration settings being lost.