Change `DynamicFont` to use [HarfBuzz](https://github.com/behdad/harfbuzz) (MIT license) to handle: 1. Context-sensitive shaping and ligatures for complex scripts (Arabic, Devanagari, Thai etc.); 2. Programming ligatures with fonts like [Iosevka](https://github.com/be5invis/Iosevka) & [Fira Code](https://github.com/tonsky/FiraCode) in script editor.  Related: #3081