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
But where are these other things that might be a plain object? `subTargets` was returning `this.glyphs` which is [GlyphViewModel, GlyphViewModel, ...]. That's flat already. If USMapViewModel ever needed to include more subtargets, we would combine the two arrays in this getter.
If I understand your code, this version is returning the exact same thing it was returning before. You're just using two arrays of indirection to get there.