[rbp/omxplayer] Fix audio sync with visualisation

As GPU can buffer a few seconds of audio, and the visualisation is updated immediately, they are badly out of sync.
The solution is to push the visualisation data through a queue, and retrieve it from queue when the media time is reached.
settings: split requirement conditions from <visible> conditions into new <requirement> tag
[win32] update VS project files
settings: implement new "visible" dependency for dynamically showing/hiding settings
[osx/ios/atv2] - sync xcode project
[rbp/omxplayer] Avoid flushing fifos when audio/video fifos out of sync

This was intended to be a never happens event that could reset the state when something bad happens.
However it does trigger in some reasonable cases (like audio codec change) and makes things worse.
[rbp/omxplayer] Support frame advance with right arrow when paused

It seems this is desired behaviour for xbmc, and works okay on Pi, so enable it.
[rbp/omxplayer] Apply deinterlace changes immediately

Currently on Pi the deinterlace state is only sampled when opening the player.
This means to change deinterlace settings, you need to change in the video OSD then manually quit and restart the video.
This commit detects a change in current deinterlace settings and closes and opens the video player which applies the setting.

For seekable streams, seeking to "now" makes the video restart quicker.
Without the seek, the video does reappear, but takes a number of seconds
[rbp] Fix type of transform parameter to match latest firmware
music: fix crash when calling CTagLoaderTagLib::Load() through IMusicInfoTagLoader::Load() (introduced by d0a5a97e0c6c7831db382dfdc3e8650ff500acb9)

The class definition of CTagLoaderTagLib was completely screwed up. It is used
as if it was derived from IMusicInfoTagLoader but it actually wasn't.
Furthermore the signature of the CTagLoaderTagLib::Load() method was not
completely identical to the pure virtual method definition in
IMusicInfoTagLoader (std::string instead of CStdString) so it's a miracle this
didn't blow into our faces earlier.
Merge pull request #3076 from Montellese/tagloader_fix

music: fix crash when calling CTagLoaderTagLib::Load() through IMusicInfoTagLoader::Load()
Merge pull request #3073 from popcornmix/transform_type

[rbp] Fix type of transform parameter to match latest firmware
[rbp] Switch from libshairport to libshairplay for airplay
Merge pull request #3077 from popcornmix/libshairplay

[rbp] Switch from libshairport to libshairplay for airplay
Merge pull request #3060 from Montellese/settings_visible_dependency

settings: dynamically show/hide settings
Merge pull request #3070 from popcornmix/immediate_deinterlace

[rbp/omxplayer] Apply deinterlace changes immediately
Merge pull request #3069 from popcornmix/frame_advance

[rbp/omxplayer] Support frame advance with right arrow when paused
Merge pull request #3068 from popcornmix/avoid_flush_sync

[rbp/omxplayer] Avoid flushing fifos when audio/video fifos out of sync
Merge pull request #3049 from popcornmix/visualisation_sync

[rbp/omxplayer] Fix audio sync with visualisation
Adding JSON-RPC support for Profiles operations to XBMC.