PJ: make find_free_amount (memory) return 32MB or LONG_MAX on non-DOS.
PJ: use memmove instead of memcpy as memory areas overlap.
PJ: fix crash due to allocating wrong amount of memory.

The size of the allocated buffer is stored before the main buffer.
This should be the size of a size_t, but was assumed to be 4 bytes.
This patch uses sizeof(intptr_t) as in Watcom size_t is only 2 bytes.
PJ: fix loading/saving Tsettings_file structure.

The old Tfastflush/Tslowflush union was done to save stack space.
However, the separation between the fields in Tfastflush could
potentially be different to those in Tsettings_file, leading to a
corrupt file.

Loading a corrupt file can result in setting buf->vs.zoomscale = 0,
which leads to a crash further on.