Correct issues related to BITSET_FFS, BITSET_FLS:
The return value for a bitset of length n should be in the range [0, n], but in the current implementation can be larger than n where n is not a multiple of BITSET_BITS and bits between n and roundup2(n, BITSET_BITS) have been set. Mask out these high-order bits to prevent the error.
The comments and documentation for BITSET_FFS_AT suggest that the 'start' parameter represents a 1-based index into the bit set, but in implementation and in usage, is clearly a 0-based index. Correct those descriptions.
There is a BITEST_FFS_AT, but not a BITSET_FLS_AT. Create one.
bitstring.h has both FFS and FFC methods for finding set bits or clear bits. Add FFC and FLC methods here.
There are no tests in bitset_test for the correctness of BITSET_FFS or BITSET_FLS. Add such tests.
Somewhat unrelatedly, add missing documentation for BIT_ISSET macro.