common: Cast via uintptr_t rather than unsigned long in UNCONST (#581)
On ILP32 and LP64 systems, unsigned long is sufficient to round-trip
pointers, but on LLP64 systems it is too small, and on systems like
CHERI where pointers are capabilities, it does not propagate capability
metadata, and casting back to a pointer to yield a pointer that cannot
be dereferenced.
Instead, cast via uintptr_t to ensure we always use an integral type
that can losslessly round-trip pointers.