Added TGP backend
Indented some files
Added tgp functionality
generate() takes a dict
Began reworking the parser to be re-entrant
Added ParseContext::scan_*
Worked on ParseContext
Worked on ParseContext + cleanup
main*.cpp cleanup