Finished the GUI to allow editing without XML

Work still to be done:
Integration tests with AI
Drag and Drop/Reordering
AI restricted use
I'm confused about the error handling here.  If `parse_examples_xml_str` is already raising an `UpdateFromXmlError`, why wouldn't it catch the `UnicodeError` itself?