DF Error detection and Correction

Added additional error detection and correction to the DF field of the
first byte in every ModeS frame.
Mode S Gillham altitude changes

Modify all the Mode=S Gillham altitude decoding to use a new function
decodeGillhamField()

Change the Mode-S signal strength so that it rounds to the nearest
integer
Update displayModesMessage()

Update displayModesMessage() to show additional ICAO defined DF types.
Major re-write of decodeModesMessage

Lots of changes to the decodeModesMessages() function, and associated
helper functions, with the aim of speeding the code up by reducing the
number of calls to the CRC functions. Also, only update the mm variables
which are part of the message we're decoding.

Change the way CRC's are generated and checked.
Change the way single and double bit error is implemented.
General tidy up of the function to make it more readable.
VK1ET : Ctrl/C and other cleanup code

Changes supplied by John VK1ET.

This tidies up the thread termination, which then allows for use of [a
trapped] Ctrl/C to cleanly terminate the program and dump stats if flag
set.