font: Reduce code duplication

... by templating the main text processing loop based on if text is
drawn or only only laid out.
[refactor] font: Start functions with lowercase
Improve UTF-16/UTF-8 conversion code

- Move all Unicode-related code to util/Unicode.h
- Improve handling of bad UTF-8 sequences, fix UTF-8 resynchronization
- Always read UTF-16 as little-endian independent of the runtime arch
[refactor] font: Start functions with lowercase