Add back non-const abc::to_str_backend char{8,16,32}_t [] specialization

Commit 04d9cc80f3142db7cd235f4a136b874f6215b73d changed these
specializations to a const template type, but GCC does not like this
change.

Provide both specializations (const [] and non-const []) until I
understand how to avoid one of them.
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.