Numeric template and field name support

Synthesis will no longer generate invalid code when faced with a template or field name that starts with a number. Numbers are automatically prefixed with _ so as to retain valid C#.