[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
[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.
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.
[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
[rbp/omxplayer] Reset more state variables on Initialize

The component shouldn't remember any state from before the Initialize
Merge pull request #3356 from popcornmix/streamsilence

[rbp] Add streamsilence option for hdmi
[rbp/omxplayer] Replace jpeg parsing with cheaper byte aligned accesses

All the parsing is byte aligned which can be done about ten times faster
than bit based parsing.

Also remove the unused PNG parsing
[rbp/omxplayer] Fix bugs with jpeg parsing

I was finding GetCodingType to sometimes take 200ms for a single jpeg.
That was a mixture of the slow bit oriented parsing, but more significantly some bugs in the parsing.

The SOF blocks skipped the wrong number of bytes, resulting in us parsing junk.
The M_TEM, M_DRI, M_SOI and M_EOI tags when seen (usually due to the junk) can only escape by slowly parsing until end of file.
Also, after a M_SOS, there is the variable sized jpeg block which we can't parse, so best to give up then, rather than misparsing
the remaining jpeg data