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)
intents: Add a java class for listening to intent broadcasts
intents: hook up a JNI_OnLoad for finding our java functions

This should be extended to do lots more, so that we can quickly add java code
and access it from native, without the mess that is jni.
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.
[rbp] Handle resolution changes during video stream.

When the resolution changes, GPU sends a port settings changed message. Host has to acknowledge it by disabling and enabling the affected ports.
[IPlayer] Add struct SPlayerAudioStreamInfo and GetAudioStreamInfo(int iStream, SPlayerAudioStreamInfo &info).
[Players/GUI/LegacyPlayer/JSON] Remove
    GetAudioStreamLanguage(int iStream, CStdString &strLanguage)
    GetChannels()
    GetAudioCodecName()
    GetAudioStreamName(int iStream, CStdString &strStreamName)
from all players and replace them with GetAudioStreamInfo(int iStream, SPlayerAudioStreamInfo &info).
[IPlayer] Add struct SPlayerSubtitleStreamInfo and GetSubtitleStreamInfo(int iStream, SPlayerSubtitleStreamInfo &info).

[Players/GUI/LegacyPlayer/JSON] Remove
     GetSubtitleLanguage(int iStream, CStdString &strStreamLang)
     GetSubtitleName(int iStream, CStdString &strStreamName)
from all players and replace the calls to them with calls to GetSubtitleStreamInfo(int iStream, SPlayerSubtitleStreamInfo &info).
[Players] Remove unused method GetSubtitleExtension(CStdString &strSubtitleExtension).
[IPlayer] Add struct SPlayerVideoStreamInfo and GetAudioStreamInfo(SPlayerVideoStreamInfo &info).

[Players/GUI] Remove
    GetVideoBitrate()
    GetVideoCodecName()
    GetVideoAspectRatio(float& fAR)
    GetVideoRect(CRect& SrcRect, CRect& DestRect)

from all players and replace the calls to them with calls to GetVideoStreamInfo(int iStream, SPlayerAudioStreamInfo &info).
Fix the WaitData amount in CSimpleFileCache::Seek, count from read pos.
Correct Player.PlayPause behavior

In current implementation using play parameter as boolean won't force the playerspeed to 1 as it should.
This PR correct this so that using a bool parameter act as the toggle and provide the same behavior as GUI or EventServer.
Fix crash in CShoutcastFile::Close(), clear buffer pointer after delete.
Fix ticket 12729, ignore content-length of shoutcast file.
When the shoutcast file was 302 redirected, libcurl may return the
content-length of the 302 page's body, it cause next read return 0.
refresh the correct video viewed in the video info dialog (fixes #13676)
Merge pull request #2308 from Montellese/13676_video_refresh

refresh the correct video viewed in the video info dialog (fixes #13676)