Switch _Unwind_Word -> _Unwind_WordAddr when required
As it stands we have _Unwind_CapWord for capabilities, and _Unwind_Word
for non-capabilities. Some places in the code that use _Unwind_Word do
not need specifically non-capabilities but are there because of the
possible difference between _Unwind_Word and a pointer on non-capability
targets (e.g. AArch64 ilp32).
Here we split the uses of _Unwind_Word between those that explicitly
should be non-capabilities, and those that are there for other reasons.
Similar for _Unwind_Sword.
This is the first step towards switching the name of _Unwind_CapWord to
_Unwind_Word so that the API of the unwinder does not have to change for
all users when adding capabilities.
We use _Unwind_WordAddr for this "explicitly should not be a capability"
type. We use it in the opaque structures _Unwind_Context and
_Unwind_FrameState since they only need addresses and this saves space
in the structure. In _Unwind_FrameState there are some members which
are to indicate which column in the unwinder table a register should be
stored in. We use _Unwind_Reg (a new type to describe an unsigned int)
to store these values.