Currently only 7 formats are supported, but we don't want the 16 limit
(it's an unsigned
) to hit us by surprise
Let's use bitset.h's BITSET magic to allow us to have any number of formats, with a static assert to make sure we don't forget to update it.