dvdplayer: Allow multithread decoding for hi10p content by default

This allows decoding of some hi10p material on e.g. AMD Fusion with
both cores at the max. This introduces a new advancedsetting named
disablehi10pmultithreading to disable hi10p decoded multithreaded.
changed: Add rule for selecting remote (or non-local) items for player selection rules
guilib: simplify BindToTexture and support any unit

All stages we support are in order after texture 0
gl: add missing alpha setup for texture stages
gl: avoid using explicit texture, use bound texture
opengl/d3d: add support for limited color levels (16-235)
droid: remove the stateful life-cycle manager

Simply properly react to messages instead. This ends up being much cleaner and
more straightforward.

There were many problems with the old life-cycle code:
- It based all decisions on gain/loss of focus, which is incorrect, as that
  pertains to input rather than windowing.
- Due to the above, there were many race conditions.
- The startup/teardown were convoluted
- It was a mix of examples, a stateful one where the app keeps track of status,
  and a stateless one mainly handle by appglue. Since we really only care about
  a handful of events (startup/exit/newwindow/destroywindow mainly), stateless
  is the way to go for us.

This fixes random black-screens, fixes, and crashes when starting XBMC as a
launcher.
[cec] get the CEC devices that are connected to the system from libCEC, rather than getting them from usb device scanning (or other methods). this way all adapters that libCEC supports are automatically supported by XBMC, without the need for specific device scanning code. bumped libCEC to 2.1.0
[peripherals] pass the full scan result to CPeripherals::CreatePeripheral()
[peripherals] removed unused constructor
[peripherals] pass the full scan result to CPeripherals::GetMappingForDevice()
[peripherals] added fields m_mappedType and m_strDeviceName to PeripheralScanResult
[peripherals] update m_mappedType and m_strDeviceName in PeripheralScanResult in CPeripherals::GetMappingForDevice()
[peripherals] store the bus type in PeripheralScanResult so it can be overridden
[cec] override the bus type, so users don't have to reconfigure their adapters
[peripherals] pass the full PeripheralScanResult to CPeripheral constructors (cleanup)
[peripherals] use a separate field for mapped bus types in PeripheralScanResult or setting won't be loaded
[cec] ensure that the updater thread has been stopped before trying to stop the main thread or we'll be waiting a long time to exit when the tv can't be polled
[peripheral] support for multiple adapters of the same type
droid: fixup thread detach