libmemdisc/hack: use frame pointer, not stack pointer

We don't want to search in our own stack usage for code pointers.
This is why we need to get the start of our current stack frame.
From the GNU backtrace() source we know that this is possible with
'__builtin_frame_address (0)' in an arch independent manner. Now,
we don't have any arch specific stuff in the C/C++ code anymore.
linuxhooking,ugtrain: switch over to reverse stack offset

The game Warzone 2100 showed us that regular stack offsets are not
adaptable. There can be a lot of them. E.g. this game has different
ones for: mission start, building and loading from savegame. But
they all have the same reverse stack offset.

With the frame pointer pointing to our own stack frame start we can
use the reverse stack offset, now. It is the same inside libmemdisc
and libmemhack as we don't search in their own stack area anymore.
Using a single reverse stack offset per memory class simplifies a
lot. So let's do it!
examples: update README and 64 bit configs

We have to change them as we use the reverse stack offset, now.
We also add a 64 bit config for Warzone2100 2.3.8. They've
changed the way how objects are allocated, object sizes and
datatypes compared to version 3.1.0. There is no chance to
automatically adapt that.