The vast majority of CharacterLiterals have a value which fits into 8 bits
(in the 2666 CharacterLiterals in all of Boost, only 2 don't).
When possible, use the space in the bit-fields of Stmt to store the value
and otherwise store it in a trailing object.
This saves 1 pointer per CharacterLiteral when the value fits into 8 bits.
Note that in itself this do not save that much space, but this is part of
a larger effort to pack the statements/expressions classes.
Minor comment, does it make sense to covert this to a scoped enum since it looks like it is being strictly used as a set of values.