Add architecture macros

These macros are to set the target type to the four known unique
targets: x86, x86_64, ARM32 and ARM64. You should not have more
than one of them set in any given architecture, so if x86 is set,
this is *not* a 64-bit machine.

These macros should replace _64BIT_ and all x86 related ones, when
the _64BIT_ macro means actually x86_64, and help the migration to
ARM platforms, to come.
First round of changes to compile on ARM

This change adds all the necessary ifdefs to make it compile on ARM.
It doesn't fix any of the issues, so it will not run. But it does add
ARMFIX tags to all macros changes, so that we know where to change next.
Checking _64BIT_ flags, adding ARMFIX

Checking all _64BIT_ flags and adding relevant ARMFIX comments around to
make sure we fix them at the same time. There are a number of different
ARMFIX comments, each one with an explanation of what has to be done to
make it work on ARM. Other comments were added for clarification of why
that particular _64BIT_ flag is not at all platform specific.