ugtrain: introduce reverse message parsing for discovery

We've noticed an issue in discovery stages 3 and 4 when there is
more than a single match. The symbol lookup is still quite
inefficiant and slow as we read symbols uncached one by one from
the disassembly.

What matters for us is (one of) the last matching malloc call(s)
as it is very likely kept until game end. When reversing the
search for the matching malloc call, we can interrupt the symbol
lookup directly after the relevant malloc. This is why we do it
this way, now.
discovery: add DEBUG_PARSING compiling option

When debugging the file read and the parsing, we don't want the
input file to be created from scratch over and over again. So
we add a compiling option to write the output from the FIFO to
/dev/null in the stages 1, 2, 3 and 4 loop if activated.

It is deactivated by default. So regular program execution is
not affected. It is used for local debugging and testing only.
examples: add adaption to Warzone 2100 64-bit

The adaption is not completely ready yet as there are also major
differences between game versions but for version 3.1.0 it works
at least. There are also still issues with the multiple stack
offsets.

We also increase the maximum body points for Droids to 2000.
From these the actual body points are read. This makes our
droids more difficult to destroy.