[ios64] - fixed offsets into the eventmem for arm64 - fixes bt keyboard cursor keys when compiled for arm64
Improved file buffering in CArchive.

CArchive already did some file buffering, but only on writes. Added the
equivalent code for reads. Also improved the write buffer case so that it
only ever issues sector-aligned writes (the read code does this from the
start). Shuffled various bits of code into the header file to squeeze a bit
more performance out of it.
[application] - remove m_bInBackground and its setter/getter and use
SetRenderGUI instead
[json] - fix jsonbuilder was not found when added to "PATH" from outside. Add the same approach like done in codegenerator.mk - fixes json generation when compiling from xcode
[airtunes] - phase out support for libshairport - its superseeded by libshairplay long enough on all platforms
Merge pull request #4248 from Memphiz/btcursorkeys64bit

[ios/arm64] - fix bt keyboard cursor keys when compiled for 64bit arm
settings: fix deserialization of list setting with empty default value
Merge pull request #4694 from Memphiz/fixjsongeneration

[json] - fix jsonbuilder was not found when added to "PATH" from outside...
Merge pull request #4234 from bavison/carchive_buffering

Improved file buffering in CArchive.
Merge pull request #4697 from Memphiz/phaseoutshairport

[airtunes] - phase out support for libshairport - its superseeded by lib...
Merge pull request #4693 from Memphiz/remove_background

[application] - remove m_bInBackground and its setter/getter and use
[omxplayer] Support stereo view modes with scaling

The Pi only supported a single view rectangle, which is sufficient for all mono view modes,
but only supports a subset of stereo modes.

To work around this, the scaling rectangles were ignored in 3D modes and 3D video was treated as unscaled.
While this worked or square pixel, 16:9 content on a 16:9 display, it went wrong is various other conditions.

@sraue reported that mono view of SBS/TAB content wasn't scaled correctly, and other forum reports
aspect ratio errors in widescreen 3D videos.

As it wasn't trivial to work around these bug reports, I've added a new stereo flags to the firmware
that allows a second display region to be created for the second eye, allowing scaling to work.

I've been through the video stereo modes (none, sbs, tab) and the display stereo modes (mono, sbs, tab)
and all the zoom modes, and compared the scaling to xbmc on windows and all seem to match

Requires udpated firmware.
[omxplayer] Don't propagate 3d flags based on supported 3d modes
[graphics] Don't set stereo mode based on resolution

The resolution change should follow stereo mode
[graphics] Allow switching to a more suitable 3D resolution
[3D] Support switching to 3D resolutions

Include matching 3D flags (SBS/TAB) in the score of a resolution to switch to, to enable switching to 3d modes.
Also remove the old code that treated 3D modes differently when assigning a score.
[graphics] Make pixel ratio for 3d modes consistent

Note: Use the stored stereo flags from lists of resolutions.
Use current stereo mode for current resolution.