fcint: add casts to allow building with stricter compilers
When targeting CHERI, casts between pointers and integers must use (u)intptr_t. uintptr_t values contains pointer bounds (and additional metadata), whereas other integer types do not. This change also adds a cast to FcOffsetToPtr() to silence a compiler warning that triggers if the compiler cannot statically infer which side of an arithmetic operation is the pointer operand and which one is the offset/mask.