Reduce the chance of naming conflict between public user-defined field
names and local variables by preprending an underscore.
Enums are no longer in a separate file, which is more logical and avoids
potential name conflicts. ExampleSumTag.FOO becomes ExampleSum.Tag.FOO.
Updated TODO.
Merge TODO
Merge pull request #6 from timeco/mj/naming

FooTag.BAR becomes Foo.Tag.BAR