[demo] Text-on-path editor

Showcases the new extended text metrics features [1], in particular text
clusters functionality.

Implement text editing functionality with text laid out along a path.
This exercises some of the tricky text-related APIs: complex text
shaping with glyph repositioning, per-glyph metrics and selection boxes

Some of the features:

 * experimental API detection with legacy layout fallback
 * basic editing (cursor movement and insertion)
 * mouse repositioning and selection
 * copy-paste support
 * three path shapes (circle, wave, spiral)
 * three alignment modes (left, center, right)
 * four baseline modes (alphabetic, middle, top, bottom)
 * several font options
 * path scaling control

[1]
https://github.com/fserb/canvas2D/blob/master/spec/enhanced-textmetrics.md

Change-Id: I79d1c8eb08b2c4b4d6280486056bb2ba02126c21
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1281096
Reviewed-by: Kaylee Lubick <kjlubick@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
5 files changed