OpenGL/CanvasRotateShift: swap translate and rotate

Fixes a rendering problem with the aircraft symbol.
Multitouch support for SDL2

Add SDL Features.hpp to define HAVE_MULTI_TOUCH if SDL2 is enabled and
handle SDL_FINGERDOWN / SDL_FINGERUP events to call OnMultiTouchDown() /
OnMultiTouchUp(). This change does not affect SDL_MOUSEBUTTONDOWN /
SDL_MOUSEBUTTONUP event handling, these two events are still triggered
for touch events as well.
Battery state information with SDL2

Add an implementation for UpdateBatteryInfo() using SDL_GetPowerInfo(),
if SDL2 is enabled.
Ensure that SDL textures are created in the correct pixel format

Create textures with SDL_PIXELFORMAT_RGB888 instead of
SDL_PIXELFORMAT_UNKNOWN. Furthermore, when the texture is recrated in
OnResize(), use the same texture pixel format which the previous texture
instance had.
OpenGL ES 2.0 support when using SDL2

When HAVE_GLES2 is defined, and SDL2 is used, include SDL_opengles2.h
instead of SDL_opengles.h. And set SDL GL attributes
SDL_GL_CONTEXT_MAJOR_VERSION and SDL_GL_CONTEXT_MINOR_VERSION, so that
SDL creates an OpenGL ES 2.0 context
Compile warning fix for clang

clang complained about incorrect brackets being used for uint8x8x2_t
variable initailizations.
OpenGL/Canvas, ...: don't glEnable(GL_TEXTURE_2D) on GLES 2.0

The GL_TEXTURE_2D flag is deprecated on GLES 2.0.  Textures are used
if the shader references them.
TopographyFileRenderer: apply GL_FIXED scale for GLES 2.0

Shift everything by 16 bit because we upload the vertex positions with
GL_FIXED instead of GL_INT; GL_INT is not available on GLES.
TopographyFileRenderer: reverse the glm matrix order

Was the wrong way around.  This finally fixes the topography renderer
on GLES 2.
TopographyFileRenderer: eliminate Brush on OpenGL

Brush::Set() is redundant after Pen::Bind() has been called.
TopographyFileRenderer: reduce glEnableVertexAttribArray() calls

Use one ScopeVertexPointer instance.
Topography: upgrade shapelib to 6.4.1
Topography/XShape: move code to Convert.hpp
Replacement for "ld -b binary" resource embedding mechanism

"ld -b binary" is not supported by all linkers, particularly not by the
Apple ld64 linker. Now, a small (and portable) assembler program is
generated compiled by the EmbedFileInObjectFile.pm perl module to
generate .o files which are compatible with those compiled with "ld -b
binary". The .mk include order is changed so that the AS variable
(defined in compile.mk) is correctly initialized for resource.mk and
libdata.mk.
Asset: Add IsApple(), IsMacOSX() and IsIOS()
Add HOST_IS_X86_32 and HOST_IS_X86_64 variables
Use -isystem instead of -I for freetype include directory
Use -isystem instead of -I for libpng include directory
Revise build system for darwin targets

This adds support for the toolchain / library set which can be built
using the scripts from
https://github.com/felixhaedicke/DarwinToolchainBuilder
This also enabled cross compiling support for Darwin targets.
The hardcoded library paths to /opt/local/lib are no longer needed and
removed.
Add IOS build target

Add support for building for iPhone and iPad devices. For this target,
SDL2 and OpenGL ES 2.0 is used.