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
This is not non-nested properties (notice the if-statement above). The `if(defined(type) && (type === 'DataSet...` is specifically for things like typed ArrayProperties that aren't nested, like in glyphs.