CirclingWindow: check track_available

Don't use old or bogus track value.
CirclingComputer: remove redundant code from Reset()

These attributes do not matter as long as active==false.
CirclingWind: convert attribute circle_deg to Angle

Fixes rounding errors and thus increases the algorithm's accuracy.  A
benchmark showed that there were 10% more estimates and the number of
low-quality results were decreased.
CirclingWind: eliminate attributes min_vector, max_vector
CirclingWind: store track in each sample

The old iterating track formula in CalcWind() was extremely
inaccurate.  This commit eliminates lots of bogus estimates.
CirclingWind: eliminate Sample::v

Calculate only as needed.  Reduces CPU usage.
CirclingWind: use range-based for
CirclingWind: use SpeedVector in struct Sample
CirclingWind: eliminate meaningless magnitude multiplications

Construct the Vector object right away with the new magnitude.
CirclingComputer: return SpeedVector, not Vector

Convert to Vector on demand.
WindStore: accept SpeedVector instead of Vector
WindMeasurementList: use unsigned integers
WindMeasurementList: use sqr()
CirclingWind: make variables more local
CirclingWind: don't import std::min()
CirclingWind: return early on failure

Don't bother calculating everything when we should know already that
the call will fail.
CirclingWind: move circling mode switch to NewSample()

Remove the extra method NewFlightMode() and the extra code from
class WindComputer.
CirclingWind: fix filter in nested loop

This was wrong, because "i" is the offset from the current sample, not
the absolute index.  This commit fixes more bogus wind estimates.
CirclingWindow: remove obsolete negative(mag) check

The previous commit made this check obsolete.
CirclingWind: reset after time jump of 30s or more

Override Validity::FixTimeWarp()'s default of 5 minutes, which is too
much for circling.