Make compiler accept multiple command line arguments

Also add CamelCase convenction for template names to generated functions
More fixes, renaming
More changes to template interface. Now passing arguments via closures

The basic rationale is that this allows all templates to have a consistant
interface, that of call(io.Writer). A struct + interface would have worked
equally well, but this is prettier:
templates.Master(templates.Test(nil, index))(writer)