There are only five unsigned integer types, so we should just list them out. Also provide `__is_signed_integer`, even though the Standard doesn't consume that trait anywhere yet. Notice that `concept uniform_random_bit_generator` is specifically specified to rely on `concept unsigned_integral` and *not* `__is_unsigned_integer`. Instantiating `std::ranges::sample` with a type `U` satisfying `uniform_random_bit_generator` where `unsigned_integral<U::result_type>` and not `__is_unsigned_integer<U::result_type>` is simply IFNDR.
Also vastly improve test coverage for the <bit> manipulation functions, using our modern "test runtime and constexpr-time with the same function" approach.