Form/List: use GLCanvasScissor instead of GLScissor

Let GLCanvasScissor figure out the projection.
OpenGL/Globals: split screen_size into window_size/viewport_size

Prepare for the new display rotation.
OpenGL/BufferCanvas: use glPushAttrib() to save old viewport

Fall back to glGetIntegerv() on Android.
OpenGL/BufferCanvas: save and restore the modelview matrix

Reverts commit f837a348; the operations were indeed necessary, but not
because the BufferCanvas renderer modified the matrix, but because the
matrix was not zero before, and that non-zero matrix must be restored.
GDI/{Single,Paint}Window: use HOLLOW_BRUSH for hbrBackground

hbrBackground==nullptr means that WM_ERASEBKGND is used, see:

 http://blogs.msdn.com/b/oldnewthing/archive/2014/03/05/10505179.aspx

This is a micro-optimization to save this message.
BarographRenderer: eliminate redundant "no data" check

We already check if the LeastSquares object has a valid result.  This
special case can never happen.
WindChartRenderer: simplify zero division workaround
WindChartRenderer: remove unnecessary "fixed" casts
Math/LeastSquares: clear all slots in Reset()
Math/LeastSquares: no implicit initialisation

Reduce bloat.
Math/LeastSquares: use range-based for
Math/LeastSquares: make all attributes private

Add public accessor methods.
Math/LeastSquares: move API documentation to header
Math/LeastSquares: shorter method names

Remove the "LeastSquares" prefix from method names; we're already in
the LeastSquares class.
Math/LeastSquares: use GetYAt() internally
PythonGlue: make a copy of the input filename to ensure exclusive access

Otherwise someone may change the contents of the py_input_data object
which could lead to undefined behaviour of the Flight class.
PythonGlue: fix possible memory leak in xcsoar_encode
PythonGlue: fix double free caused by a incorrect DECREF
Screen: use nullptr instead of NULL
XML, Logger, ...: use nullptr instead of NULL