GlideSolvers/MacCreadyVopt: check for positive distance

Workaround for potential division by zero.
TaskPoint: move target methods to AATPoint, non-virtual

The overhead for carrying these virtual methods around on every
TaskPoint instance is unnecessary.
TaskMacCreadyRemaining: make has_targets() "pure"
Revert "AirspaceRenderer: Enable the explicit use of airspace paddings on PPC200x"

This reverts commit 767460365c6f1d486d4699405e5403263b618adf.

The commit has never worked.  It causes an assertion failure in
Canvas::ClearWhite() whenever a user with a PPC2000 build attempts to
enable airspace paddings, because the stencil buffer is not available.
release v6.4.6
Merge tag 'v6.4.6'
kdtree: support rvalue references
TaskPoint: remove GetVectorPlanned(), GetVectorTravelled()

These are only relevant for OrderedTaskPoint.
GeoVectorMemento: use GeoVector::Invalid() in constructor
TaskLeg: make all attributes "private"
TaskLeg: don't initialise GeoVector attributes

Don't try to hide valgrind warnings on missing ScanX() calls.
TaskLeg: inline the constructor

.. and GetNominalLegDistance() and a few more internal methods.
Reduces overhead.
Manual airspace_and_flarm.tex: Better explanation on warning dialogue.
TaskLeg: call GetPlannedVector() in GetRemainingVector()

If state is AFTER_ACTIVE, then the code was identical.
GeoVector: add constructor Zero()
TaskLeg: use GeoVector::Invalid() for unreachable code
AbortTask: GetHomeVector() returns invalid if no home

When no home is configured, don't return an empty vector, as this is
bogus.  This syncs behaviour with its only caller, i.e.
TaskManager::UpdateCommonStatsWaypoints().
GeoVector: remove useless dummy constructor

This constructor was dangerous because it could implicitly cast a
number to a GeoVector.
Compiler.h: add wrapper macro for __builtin_unreachable()

Suppresses warnings and can reduce overhead.
test/test_mc: fix build breakage due to GeoVector ctor