This commit annotates errors from GlyphSet.readGlyph() with the details
of the glyph that originated them (e.g. name, path to glif). This is
implemented with a loose backport of PEP678, to avoid adding a wrapper
error that would be less specific and would break API compatibility.
In addition, this commit adds a test to ensure that the new details are
present (specifically, in the case of parsing invalid XML).
This allows dependent projects to catch errors parsing glifs without
requiring logic to account for which XML library fonttools is using
internally (e.g. for implementing fonttools/ufoLib2#264).
This commit also adds tests to ensure that the exception we expose when
glifs have invalid syntax remains stable across future releases.