Code generation implementation checkpoint.

Basic framework is in place, but needs to be fleshed out with support
for the rest of the intermediate code elements and also maybe some
refactoring to tidy up the interface between the intermediate code
generator, the preprocessor, and the C code generator.