Add a canvas create, break script’s dependency on gfx.

The build time on my laptop after touching gfx goes from 1m37s ot 46s.
Make text decorations be independent display items.

The goal it to avoid having too much layout logic (which gets more complex in vertical text) in gfx code.
WIP
Deoptimize
WIP