Update: synchronize f_utf (and fl_utf) with f_string (and fl_string), update f_string and fl_string, and fix some bugs.
Get the UTF related code more up to date and in sync with all of the string changes.
This brings the UTF string types in line with the normal string types.
Much of the code is moved out of fl_utf and fl_string and into f_utf and f_string.
This is only the first pass at updating the UTF code.
The function comments need a cleanup pass.
The pre-existing incomplete UTF code remains incomplete.
There were some minor bugs and typos that needed fixing that I happened across while working on this.
The UTF string types should just use the same length types as the string types.
Rename the *_non_graph() functions to *_graph_non().
There will need to be another follow up commit to cleanup the code that as of this commit now contains duplicate code.
The FSS processing code is a likely case for this.