We can combine the mapping and string tables into a single static
allocation, which allows everything to be offset from a single
base address which is slightly more efficient.
Since we are not fitting these offsets in 8 bits, and are nowhere
near exceeding 16 bits, just use uint_least16_t for the mapping table
unconditionally instead of trying to come up with a new preprocessor
conditional string that works with the new calculation.