Rename string literal wrapper macros, introduce character literal ones

Rename:
•  U8L > U8SL
•  U16L > U16SL
•  U32L > U32SL

Add:
•  U16CL
•  U32CL
•  CL

Additionally, make the conditional definition code more modular and
(probably) more readable.

This also exposed a missing #include statement in numeric.hxx, which
caused numeric limits for native char16_t and char32_t to never be
defined.
Use new character literal macros

Put to use the new character literal macros introduced by commit
c4c2cce40987dc525a58594c220aa5af9d67e199.