Bugfix: Fix problems exposed by unit tests in f_print.
Swap the length a string checks, the length has priority over string.
When performing the character safely prints, the F_utf should only be returned for UTF-8 characters whose width is greater than 1.
The ASCII characters are now no longer returning F_utf.
Some functions are missing the clearerr_unlocked() and ferror_unlocked() calls that are needed for proper fwrite_unlocked() error checks.
Update the documentation comments, adding missing information.
Some of the *_to* functions are not checking if the counter "i" exceeds the length before checking for NULL.
The *_to* functions for *_raw_safely* do not exist and should to be consistent with the regular print functions.
Add the missing *_to*_raw_safely* functions.
Several of the *_to_except* functions are missing the offset parameter which should be passed for consistency with the regular print functions.
Random functions are missing the final print that should exist outside of the loop.
The "total" needs to be checked and if it represents that unprinted data is present, then print that data.