Screen: use nullptr instead of NULL
XML, Logger, ...: use nullptr instead of NULL
Math/LeastSquares: add method GetMiddleX()
Math/Vector: rebase on Point2D
Geo/FlatPoint: rebase on Point2D
Math/Point2D: add typedef scalar_type
Math/Point2D: add DotProduct(), CrossProduct()

Move code from FlatPoint.?pp.
Form/List: fix swapped right/bottom in scissor area

Fixes rendering bug in the list control (regression by commit
f6728bed).
Screen/OpenGL: support display rotation via glRotatef()

Only enabled on pure EGL targets, i.e. Raspberry Pi and Cubieboard.
Implements TRAC #3238.
Makefile: link test programs without Hardware/RotateDisplay.cpp

.. unless TARGET=KOBO.
Hardware/DisplayRotate: use UIGlobals::GetMainWindow()
manual: add section about Raspberry Pi and Cubieboard
Makefile: use /dev/input/event* on Raspberry Pi and Cubieboard

Implements TRAC #3179.
Geo/Math.cpp: Fix potential uninitialized variable usage when using WGS84

  CXX     output/ANDROID7/src/Geo/Math.o
src/Geo/Math.cpp: In function 'GeoPoint FindLatitudeLongitude(const GeoPoint&, Angle, fixed)':
src/Geo/Math.cpp:495:31: warning: 'cos_2_sigma_m' may be used uninitialized in this function [-Wmaybe-uninitialized]
   fixed sin_sigma, cos_sigma, cos_2_sigma_m;
                               ^
src/Geo/Math.cpp:511:35: warning: 'cos_sigma' may be used uninitialized in this function [-Wmaybe-uninitialized]
   const fixed lat2 = atan2(sin_u1 * cos_sigma + cos_u1 * sin_sigma * cos_alpha1,
                                   ^
src/Geo/Math.cpp:511:68: warning: 'sin_sigma' may be used uninitialized in this function [-Wmaybe-uninitialized]
   const fixed lat2 = atan2(sin_u1 * cos_sigma + cos_u1 * sin_sigma * cos_alpha1,
                                                                    ^
OpenGL/System: include SDL_version.h

Required for SDL_MAJOR_VERSION.
EGL/TopCanvas: move code to GetBindAPI(), GetRenderableType()
Screen/Pen: eliminate method Set()

Merge into Bind() and convert the remaining caller in
Canvas::DrawCircle() to use Bind() and Unbind().
Screen/OpenGL: prepare for OpenGL ES 2.0

This is the very first commit which adds some infrastructure required
to support GLES2 one day.  There are no shaders yet, but anyway, it
doesn't even build so far.
RoughAltitude: use iround to convert fixed to short

Casting a float to int truncates the value and doesn't round it.
This may lead the contest solvers to miss a valid altitude difference
of exact 1000 meters. Using iround to convert the value to a short ensures
that a near-natural float gets converted into the nearest short.