convert: split up game specification code generation

This just separates all the code and data generation components into more files. It's the first step for optimizing the gamespec conversion code.
why `#!< foo` instead of `# foo` ?