Compiler refactor, step one

All this commit does is fix some of the outstanding compiler warnings in the compiler, and some more concerning issues around that in `write_object_data.cpp` and `module_write_fonts.cpp`.

The former was unbelievably ugly; it was generating compiler warnings from shadowed variables due to its complete lack of structure. I've split the first part into a dozen functions, which fixed the compiler warnings and improved readability. The file is still full of hacks, but those require a more capable parser to remedy.

The latter was prone to access violation (or at best, losing glyphs) due to someone who noticed the unimportance of the glyph sorting step, but did not notice that it was being used to index glyphs. That behavior was hacky, anyway, and so I fixed it.

I have not tested this pull request with timelines, nor have I tested with scripts thoroughly enough. If you have an ENIGMA project with which you can test this, please test it or give the file to me so that I can make sure it works now and in the future.