po: update German translation
po: update French translation
TestLogger: Fixed broken unit test

Broken by 4474e4c9eb2d74ee8d8705f9dbb6f68d25fabe5b and
bb0ff8038a9fdb9693061dab97bcf370cdfd30ea

Sorry about that...
Util/StringUtil: fix typo in CopyASCIIUpper() function name
Audio/SLES: relicense to BSD-2
PythonGlue: return NULL when throwing a exception
PythonGlue: delete replay on early return
PythonGlue: clarify PyList_Append checks and return NULL on error
PythonGlue: only encode valid enl values
PythonGlue: return empty string if list to encode has no elements
PythonConverters: only one altitude reading is obligatory
DouglasPeuckerMod: return early if only one fix to classify
PythonGlue: check if start time is smaller then end time
Event/Kobo/Queue: move RotatePointer instance into class MergeMouse

Apply the rotation before the bounds checks.  There was a big Kobo
regression in portrait mode: the bounds were applied before the mouse
position was rotated, and thus we had everything clipped at y<600
instead of y<800.

As a side effect, this feature is now available on all "console"
targets.  It will allows us to rotate the screen even if the graphics
driver doesn't support it.
Implement WGS84 earth model for distance calculations

Prepare #2809
Enable WGS84 distance calculations by default

Fixes #2809
Event/Console/Queue: always include DisplaySettings.hpp
PagesConfigPanel.cpp: add enumhelp for infobox sets
PythonGlue: only add release time if it's plausible
PythonGlue: throw exception if igc file can't be opened