add 'tools' directory with 'ugsimfind'

ugsimfind is very useful if you've got a memory class in which also
opponents are stored like the Droid class in Warzone 2100. You need
a value which is the same for all of your own units but differs for
opponents so that you can detect which units are your own ones.

ugsimfind finds similarities in binary memory object dump files on
byte basis. It tells you for a file address the byte value in hex
and as char, its count and all files in which this value has been
found at that file address.
libmemhack: support freeing of multiple mem. obj.

We use the free space in the page-sized config buffer at the end
to store the memory addresses returned by malloc. We can keep
track of upto 504 memory addresses this way. As all frees have to
be compared with this list, we detect the end of the list earlier
with a magic invalid pointer value which is not NULL and fill the
whole array of memory addresses with that value initially.
The last memory address is always an invalid pointer. This saves
us one compare per loop cycle in 'free'.