[libc] Implement CPU_ALLOC and CPU_FREE (#202349)

Like the other macros, this commit uses an internal (__-prefixed)
entrypoint.

I added an internal typedef for the mask type to make bit set
calculations slightly safer. I also removed the comment about supporting
larger cpu counts, as increasing the struct size is not necessary to do
that -- that's what these macros are for. Increasing it would be
necessary to support operations on the fixed-size cpu sets, but that
cannot be done lightly due to ABI stability.

I added a test that checks allocations for both small and large cpu set
sizes.

Assisted by Gemini.

GitOrigin-RevId: 053c94e66386931494074db1db02818ab0f9bec9
14 files changed