Caveats:
1. Because of how this trick works, it is no longer possible to declare an option guide as static, so I had to make a bunch of changes
2. I'm going to want the hardcore C++ guys (i.e. - Vas) to review this with a fine toothed comb
The main point of this change is to C++-ify option_guide. It was changed from a struct array to a class, namespaced etc, with the ultimate hope of incorporating an in-emulation image creation UI.
Imgtool got hit with a number of changes; I'll probably have to bring that off of the backburner and touch that up too