[Linux] os-release: unescape quotes / backslashes
The os-release specification states that single quotes, double quotes
and backslashes are supposed to be escaped with \. Unfortunately
I missed this in my original commit 7a9aa6f5d9ac8df1c79eb06ed63bce8af162c3ba.

http://www.freedesktop.org/software/systemd/man/os-release.html
Expose ACTION_FOO, ICON_TYPE_FOO and KEY_CODE_FOO to addons
Added JSONRPC.NotifyAll as a built-in function
fixed: compile with old versions of libdbus that don't have DBUS_TYPE_UNIX_FD defined
added: setting to disable keyboard grabbing when in fullscreen on platforms that use SDL on X11, calls SDL_WM_GrabInput(SDL_GRAB_OFF) with the SDL_FULLSCREEN temporarily zero'd, this will make SDL call XUnGrabPointer and XUnGrabKeyboard, allowing window manager keys like printscreen, volume and alt-tab to work
[rbp] Add streamsilence option for hdmi

This adds a (mostly) dummy audio engine for Pi which supports drain allowing the
stream silence gui option to appear.
The OnSettingsChange callback enables or disables the stream silence on the GPU.

Enabling this keeps the receiver awake, and avoids losing the first couple of
seconds of audio at start of playback.
Requires updated firmware.
changed: Don't allow change of volume amplification with passthrough audio
Fix make check compilation.

TestRarFile: StringUtils::EndsWith no longer takes a third parameter
TestCharsetConverter: CCharsetConverter::subtilteCharsetToW's first
parameter cannot be a std::wstring, ::stringCharsetToUtf8 renamed to
::ToUtf8
TestJobManager: CJobManager::IsPaused renamed to IsProcessing with reverse
effect, s/UnPause/UnPauseJobs. Only PRIORITY_LOW_PAUSABLE jobs can be paused.

 There is a race condition upon calling IsProcessing for the first time
 after AddJob is called - the job may not have been started yet and not
 added to the processing list. As such, the test implements a custom CJob
 that allows the calling thread to block until the job has started processing
 such that IsProcessing can be checked in a deterministic way.

 CancelJobs effectively renders CJobManager useless after it is called,
 because m_running is set to false. A new member "Restart" was added to
 set this variable back to true when appropriate.

 IsProcessing should have returned false when jobs were paused.

TestSortUtils: SortItems is now a std::vector<boost::shared_ptr<SortItem>> not
an std::vector<SortItem>
TestStreamDetails: Aspect ratio 2.39 is now within the 2.37 - 2.47 range and
as such snaps to 2.40
Merge pull request #3376 from smspillaz/fix-tests-04102013

Fix make check compilation.
settings: fix updating skin-related settings spinners
properly reset skin-related settings after changing the current skin (fixes #14595)
[rbp/omxplayer] Add wait for buffers done calls
[rbp/omxplayer] Handle timeouts greater than a second
[rbp/omxplayer] Callback context pointer is not needed once in the class
[rbp/omxplayer] Avoid state change when already in loaded
[rbp/omxplayer] Remove warnings from event logging calls
[rbp/omxplayer] Add more event logging
[rbp/omxplayer] Signal bad state on decode error

Also abort timeouts early when in bad state
[rbp/omxplayer] We should block until all buffers are released
[rbp/omxplayer] Load OMX dll just once

On Pi xbmc isn't usable without OMX (used for video, audio, image encode and decode),
so rather than loading dll with every component, just load it once at initialisation and assume it's there