First draft of template engine chapter

I've added myself to the table of contributors, but I have a few questions about the information we're choosing to present.
Why doesn't CodeBuilder have a specialized interface to write function headers, like `code.start_func(...)`? Was the low-level interface to generating code a deliberate design decision? Why did you make that decision?