UTF-8 support in canvas (panels, graph) #10319
Rewritten how canvas.c works to handle wide utf8 chars without breaking the panels or graph ASCII layout.
Now canvas, instead of having a single long buffer for the contents of the screen, works with a 2d matrix of variable length rows, which are are enlarged or shortened based on how many "hidden" UTF-8 bytes are printed to screen.
NOTE: some languages (e.g., russian) have some bytes that interfere with the old runes system. If this pr works (and won't break any tests) I'll disable the runes system to use only UTF-8 in a later pr and have global support.