Switch from glDrawArrays() to glDrawElements().

This involves setting up a static VBO containing the indexes necessary to
convert from quads to triangles on the fly in the GPU.
Improved file buffering in CArchive

Even though memcpy is typically inlined by the compiler into byte/word loads
and stores (at least for release builds), the frequency with which 1, 2 and 4
byte loads/stores are encountered in cases where the size is *not*
determinable at compile time is still high enough that it's worth handling
these specially. On the ARM1176JZF-S in the Raspberry Pi, this improves the
total time to open a library (in the case where it's fetched from a CArchive)
by around 4%.

It should be noted that this code uses 16-bit and 32-bit word loads and
stores that are not necessarily aligned to their respective widths. It is
possible that there are some architectures out there which do not support
this, although all ARMs since ARMv6 have supported it (and ARMs earlier than
that are probably not powerful enough to be good targets for XBMC).
[mmal] Allow mmal codec for dvd stills
[omxcodec] Fix for stills with hardware codec

Hardware codecs typically run asynchronously to the decoded frames.
The reason that hardware codecs don't work when hint.stills is true
is because DVDPlayerVideo stops calling Decode/GetPicture when there
are no more decoded frames.

This means the still frames never get read out.
The solution is to also call Decode/GetPicture with the timeout messages
when hint.stills is true.
xbmc pr 3080
[omxplayer] Don't propagate 3d flags based on supported 3d modes
[graphics] Don't set stereo mode based on resolution

The resolution change should follow stereo mode
[graphics] Allow switching to a more suitable 3D resolution
[3D] Support switching to 3D resolutions

Include matching 3D flags (SBS/TAB) in the score of a resolution to switch to, to enable switching to 3d modes.
Also remove the old code that treated 3D modes differently when assigning a score.
[graphics] Make pixel ratio for 3d modes consistent

Note: Use the stored stereo flags from lists of resolutions.
Use current stereo mode for current resolution.
filesystem: Make support of browsing into archives optional

The ability to browse, scan and play content in archives can cause problems on low powered/low memory devices.
It's quite common to see reports of a large rar file that causes xbmc to crash with an out-of-memory error when browsing or scanning.
It also can be slow as any archive in the directory is opened and extracted.

Add a settings option to enable this feature and default to disabled on Pi
confluence: Remove media-overlay.jpg for when video is backgrounded
[omxplayer] Add option to choose omxplayer/dvdplayer automatically

On Helix dvdplayer is pretty usable on the Pi, and is the only option
in some use cases:

omxplayer does not support external sound cards (USB or I2S)
omxplayer does not support dvd menus
omxplayer does not support software codecs

Expecting the user to choose the right player is not ideal,
so make the switch automatically for these three cases.

The automatic switching is an acceleration option which is enabled
by default, but can be disabled
[rbp] Make cachemembuffersize default depend on memory size
[confluence] Use animated gif as a cheaper working spinner
[experimental] Disable quiet-noise generation
[settings] Experiment: Report DESKTOP resolution in video settings
Added some vc_tv_* functions that were missing in DllBCM.
Added private utility function to map a float display aspect, to the respective SDTV_ASPECT_* enum value.
Changed SDTV resolutions to be treated similarly to HDMI resolutions in SetNativeResolution. This means that the SDTV interface is powered up and set to the right mode.