rework C11 utf8.[ch] to use char32_t instead of uint32_t when referring to unicode chars, to make things more expressive.
basic/ can be used by everything cannot use anything outside of basic/ libsystemd/ can use basic/ cannot use shared/ shared/ can use libsystemd/