Just a bit of work done

I'm going to go ahead and create this pull request, currently including 62 commits, soon to include more as I just located another issue with the header generator, it's generating the same constant multiple times in some places. I have completely re-written the header generator. It now analyzes dependencies to determine which headers to include. It also now dumps child structs, enums, and constants, with the required dependency analysis for them. It also now supports enums as actual property or parameter types, where the previous generator would have simply said it was a byte.  In addition to that it now is able to access properties as if they were normal fields, and at the same speed as a normal field. Arrays are also now supported. Also, even with all of the extra stuff being dumped, the total size of the headers is still 1mb smaller than they were with the old mechanism. (8.4mb for 3.6k headers)