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
SampledTaskPoint: move base class to ScoredTaskPoint

SampledTaskPoint does not use any TaskWaypoint attribute / method.
SampledTaskPoint: don't initialise search_min/max in ctor

Don't hide missing UpdateOZ() call from valgrind.
SampledTaskPoint: remove redundant attribute search_reference

Use nominal_points.front() instead.
GotoTask: use UnorderedTaskPoint instead of TaskWayPoint
Device/Driver: add Blue Fly Vario (very similar FlyNet).
Merge branch 'master' of git://github.com/Tjeerdm/XCSoar
AbortTask: don't derive AlternateTaskPoint from UnorderedTaskPoint

No behaviour is changed by the AlternateTaskPoint sub class, only a
GlideResult got added.  This change allows making UnorderedTaskPoint
"final".
UnorderedTaskPoint: make "final"
{Sampled,Scored,}TaskPoint: remove empty virtual destructors

Unused.  Nobody "deletes" instances of these classes.
AbortTask: remove destructor

The Clear() call is redundant, C++ will automatically do this.
OrderedTask: make destructor non-virtual

The class is "final".
SampledTaskPoint: make Reset() non-virtual

Nobody ever calls Reset() on a SampledTaskPoint instance.
SampledTaskPoint: remove virtual method SearchBoundaryPoints()

Add a GetSearchPoints() overload to OrderedTaskPoint.  This saves the
virtual method overhead.