Rework how scanlines are 'aged'.

Realised that it takes 2.5s for a full revolution of the radar scanner, so normal
minimal age is 3 (s). Add control so users can change this between 1 (for testing)
and 12 (seems plenty...)

Fixes bug #36.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Committer: Kees Verruijt <kees@kees-mbp.verruijt.lan>
#
# On branch master
# Your branch is up-to-date with 'origin/master'.
#
# Changes to be committed:
#	modified:   src/br24radar_pi.cpp
#	modified:   src/br24radar_pi.h
#	modified:   src/br24radarcontrol.cpp
#
Fix auto gain + sea state
Widen radar blobs when scanlines have been missed.

The radar has 2048 possible scanlines that it can transmit.
The 4G usually transmits about half that per revolution.
The BR24 transmits between half and one third per revolution.

A new (default) drawing algorithm widens the blobs drawn when the previous scanline(s) are not transmitted.
The previous drawing algorithm can be used by editing the opencpn.ini and setting DrawAlgorithm=0 instead of DrawAlgorithm=1.
Rotate received spokes at heading at time of reception.

Douwe pointed out that if the boat rotates whilst the radar spokes are received they are drawn at the wrong rotation.
We now keep a heading stored with the spoke, and always draw relative to that. This reduces the 'rotation error' from
2,5s to 1s, or more if old spokes are shown.
Update heading via NMEA0183.

Receive all NMEA sentences so we can use a fast heading input in order to
improve rotation of spokes even further.
Remove debug logging message
Change Edit dialog to show Back button.

I found that I forgot that you needed to push the 'Value' button to get back to the main radar
control window, so I added an explicit 'Back' button, similar to what the HDS plotter does.

The value control could be a little nicer, it is not centred.
Show and hide radar control when toolbar is clicked.

When using a touch screen the right mouse dialog entry to open the radar control is
difficult, and no function should be hidden behind a right mouse click.
Now it is only needed to open it when you have explicitly closed it. Or you click
on the toolbar button twice.
Set font for context menu items.

This fixes #33.
Hide preferences dialog on close.

Fixes #13.
Fix issue #2
Bump version to 0.41026
Allow any number of scanlines per packet from 0 to 120.

Write a log message for every packet with != 32 scanlines/spokes.

This is an attempt to be more robust.

Issue #36.
Add Scan Speed button
Add packet/spoke feedback on screen.

If you set VerboseLog=1 in the ini file the Advanced Control will show feedback on the # of packets and spokes received.

The data is 'Packets <received>/<broken>' and 'Spokes <received>/<broken>/<missing>'.
Other than the immediate start of the radar the number of broken and missing spokes should be zero.
Add packet/spoke feedback on screen.

If you set VerboseLog=1 in the ini file the Advanced Control will show feedback on the # of packets and spokes received.

The data is 'Packets <received>/<broken>' and 'Spokes <received>/<broken>/<missing>'.
Other than the immediate start of the radar the number of broken and missing spokes should be zero.
Start interpreting received commands
Beginning to understand radar state report
Report received commands from other control heads.

A separate thread now monitors what other control heads send for commands.
Going in the direction where verbose logging is going to be all we need to
do future reverse engineering of the still missing controls, without needing
tcpdump.
Fix scan age calculation to be time based.

When you scroll or move the image the rendering code can be called many times a second.
This causes the radar image to be removed as the 'age' calculation depended on the
renderer being called every second. This has now been changed to a date based
algorithm, so it is no longer dependent on that.

Also lock the data structure whilst drawing + changing, this does not seem to make
a huge difference but at least it is safer.