std-qualify fixed-width integer types;¹ EncodingUtils: tidy.
EncodingUtils: corrected std::distance() parameter order.¹

1: Woops. Recognized this because libc++ is not as lenient with the
specification of std::distance(). libstdc++ will give a positive value
when first > last, whereas libc++ will give a negative value.
EncodingUtils: added missing initial bound checks in next().
EncodingUtils: corrected bound check and step behavior for UTF8Utils::prev().¹

1: Bound check was backwards. "Lead unit" macro does not include
single units, so prev() wasn't even stepping on them; we can just
explicitly step backwards one step to get out of whatever part we're
in (just like UTF16Utils::prev()).
EncodingUtils: doc correction for std::distance().
char: added DUCT_UTF8_IS_SINGLE() and DUCT_UTF8_IS_HEAD().¹

1: The latter is exactly what should've been tested in
EncodingUtils::prev() (as opposed to DUCT_UTF8_IS_LEAD()).
utility: added signed_cast() and unsigned_cast().
test/utils/strings: tidy.