test/RunWindComputer: new debug program
AUTHORS: add Frank Paynter and Frank van der Hulst
test/RunCirclingWind: reset the computer objects

Make valgrind happy.
CirclingWind: fix bogus time warp

When the CirclingWind object gets activated an the last thermal was
more than 5 minutes ago, CirclingWind::NewSample() detects a time warp
because last_*_available was never cleared.

Previously, only the second thermal was used after a long glide.  This
is bad, because the first thermal is important to know the new wind
for the next glide.  On a typical flight, this increases the number of
wind measurements by more than 50%, marking a major improvement in the
algorithm.
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.