arm: make reserving the gd register a make variable

Currently all arm targets spell out that r8 needs to be fixex,
while using a common crt0.s. Move this to a common make variable
so it is not repeated (and can be easily changed)
arm, relocate: do not us r9

r9 is a platform specific regsiter on arm and not a general
purpose register. Do not use it while relocating so it can be
used for gd.
arm: use r9 for gd

to be more eabi compliant and as a preperation for building
with clang, use the platform specific r9 register for gd
instead of r8.