Util/QuadTree: add missing CanSplit() check

The check was present in Add(), but not in Optimise().  This could
lead to an infinite recursion.
Makefile: drop "_x86" suffix from default ANDROID_SDK location

The most recent Android SDK r22 doesn't have it anymore.
OLCTriangle: keep candidate sets sorted

Reducing calculation time by up to 80% and saves a lot more memory...
Manual shared figures: Two perl scripts to translate svg's with pattern substitution and a "po" file.
InfoBoxWindow: ensure that the unit symbol is visible

The InfoBoxWindow can choose between two value fonts, a big one and a
smaller one for long values.  For choosing the font, it checks whether
the value fits into the window width, but forgets to consider the
unit's width.  This commits adds the missing check.
Android: move BatteryReceiver to separate Java class

Remove dependency on the NativeView instance.
Makefile: support newer IOIOLib

IOIOLib commit 04bb6926 added an abstraction for Android's logging
library living in target/android/src/ioio/lib/spi/.  Symlink this
directory to include it in the XCSoar build.
Android: import IOIOLib as a git submodule

Previously, to build the Android package, you had to have a copy of
IOIOLib somewhere on your hard drive, and use the make variable
IOIOLIB_DIR to tell XCSoar's Makefile the location of that directory.
That was cumbersome and error prone, because there was no good way to
specify which IOIOLib version XCSoar expects.

Another idea was copying just the IOIOLib into xcsoar.git, but that
was hard to keep up to date, and maintaining a copy of another project
is not so elegant.

The git submodule refers to the commit that is near to the release
V3.30.

The IOIO feature is no longer optional.
Gauge/GaugeVario: Fix ballast display

Fixes #2911
mapxbase.c: don't specify FILE_OFFSET_BITS locally

Since this macro isn't defined when compiling the rest of zzip and other uses of it
(jasper), we end up with a mix of off_t sizes depending on the platform.

This is the cause of bug #2564.
InputEventsMap: force signed integer multiplication in sub_PanCursor()

Fixes keyboard panning with track up (TRAC #2908).
Manual xcsoar.sty: Removed package floatflt.sty, because it does not seem to be needed.
Port/LineSplitter: sanitise input lines, reomve control characters

Replace control characters by a space.  This avoids assertion failure
in class TextWriter due to a carriage return character when NMEA input
is random garbage.
Android/IOIOHelper: catch NoSuchElementException
IOIOHelper: register SocketIOIOConnectionBootstrap

This is necessary because we don't use IOIOLib's
IOIOAndroidApplicationHelper class.
android/GlueIOIOPort: more API documentation
Android/GlueIOIOPort: fix IOIO reconnect

Add a flag named "constructing" that is true while onIOIOConnect()
runs.  Obey this flag in getState().  Previously, getState() would
return PortState::FAILED while another thread was in the middle of
onIOIOConnect(), because "connected" was true but no Uart instance was
obtained yet.
android/GlueIOIOPort: simplify the "cycling" workaround

The cause for this problem is now well understood: setBaudrate()
disconnects the IOIO port and it will be reopened in another thread,
most likely after setBaudrate() has returned.  Any write() call before
that will fail.  The simple trick is to make setBaudrate()
synchronous.
StringUtil: increment "src" pointer in loop

Fixes corrupt task declaration in the EW microRecorder driver (TRAC
#2921).
Makefile: enable GL/ES on Raspbery Pi

The VideoCore library requires GL/ES, not Mesa's libGL.so.  Fixes
instant crash due to missing symbol (TRAC #2922).