record: Support architectures with sizeof(void*) > sizeof(long)

I was seeing SIGBUS errors when running TigerVNC inside the record code
because the offsets into the memory buffer were not sufficiently aligned
to use the RecordSetRec (alignof(void*)). The current code ensures that
all offsets are aligned to sizeof(unsigned long), but that may not be
sufficient to load/store a pointer. Architectures where this is not true
include Arm Morello which has 16-byte pointers and 8-byte longs.

The current patch uses C11 _Alignof which I believe means it cannot be
merged yet. However, I am posting this MR now to see which _Alignof()
workaround is preferred: emulation using a struct + offsetof() or
using the approximation of sizeof(void*) which happens to be the same
as _Alignof(BitVectorSet)/_Alignof(IntervalListSet)/_Alignof(RecordSetRec).
4 jobs for recordset-alignment in 1 minute and 8 seconds