Glyph actions

Covers https://github.com/KSHSK/WAVED/issues/227, https://github.com/KSHSK/WAVED/issues/206, https://github.com/KSHSK/WAVED/issues/286, https://github.com/KSHSK/WAVED/issues/295

Edit: Incidentally also covers https://github.com/KSHSK/WAVED/issues/269
I don't understand this change. How is `this.glyphs` not flat already?