WaypointReaderSeeYou: Parse "Hotspot" type waypoints

The data files downloaded from the OpenAIP use this to indicate a hotspot
since there is no such type definition in the CUP file format and parsing
their XML files is overkill for this small feature.
WaypointIconRenderer: Added "Thermal Hotspot" icon
Driver/FLARM: remove bogus SetProgressPosition() calls

The SetProgressRange(10) call was using a random value, and
SetProgressPosition() is being called with more random values.  This
is bogus information, because the "progress" bar will indicate that
the operation is finished, only to start from the beginning.  It's an
abuse of the progress bar to generate an animation that doesn't say
anything useful.
Pages: move current_page to UIState
Pages: rename to PageActions.cpp
PageSettings: move PageLayout out of struct PageSettings

The PageLayout struct is being used a lot without PageSettings (and is
meant to be used without).  Carrying around the long (and redundant)
prefix all the time is cumbersome.
vlapi: readdir() change return type to return read data length

This is necessary since we need to pass the length of the read data to
conv_dir() in a later patch.
InputEventsActions: move code to UIActions::ShowThermalAssistant()
PagesConfigPanel: add missing LoadValue(BOTTOM)
PageProfile: validate "bottom" values
PageSettings: add PageLayout::main

Prepare for pages without a map.
PageSettings: add FLARM and thermal assistant pages
dlgConfigInfoBoxes: check range in OnPaste()

Fixes assertion failure (TRAC #2590).
Dialogs/TrafficList: add missing check before UpdateList()

Fixes assertion failure.
DataField/FileReader: add constant MAX_FILES
DataField/ComboList: make MAX_SIZE constexpr
DataField/FileReader: GetNumFiles() returns unsigned
po: update xcsoar.pot
po: update Hebrew translation
po: update French translation