Also makes sure the mask is a uintptr_t type so we always mask with a defined behavior.
Removes some unused stuff and marks appropriate stuff as const.
This caused the build to fail on OpenBSD.
X86 is very lenient with alignment, but platforms such as ARM are not. Therefore we ensure to align on 64 bit boundaries on non X86 platforms. This is necessary so all objects allocated are aligned to this and we can for example use 64 bit CAS primitives for object headers.