Added an IndentedStreamWriter class, and mostly implemented a new multi-stage header generation mechanism, which will allow for more advanced generation of the headers. (including dependancy analysis, and a few other things)
All of the new code is currently in my code style, it will be changed over once it's complete and functional.