Fix components mask bitset operations

Not tested, but it would seem like increasing the maximum component over 64 would lead to a bug due to the uses of bitshift on 64 bits integer to set the component mask. I fixed it with `.set()` and `reset()` method from `std::bitset`.

I also changed the `uint64_t` to `uint_fast32_t` for the `family` attributes since it shouldn't require a 32 bits integer to begin with and it should be faster on 32 bits system to using `uint32` instead of `uint64`.

Ran the test, 6/6 test pass.

Hope this is usefull!