Autogenerate unit files

It is error-prone and tedious to create new unit files. This CL adds code
to auto-generate the unit files, which will reduce effort and error
Changed autogen method to use text/template and used short receivers

text/template is easier to read, use and maintain than manual construction with strings.
This commit changes the autogen method. In the process, changes the receiver names to be
short to match up with go style convention
Added extra newline between copyright and package-comment
Fixed the --er suffix form and regenerated files
Improved comment for From
Added comment string for the type definition and reran autogen script
Added a special case for the constant power.
If the power is 0, we want to print 1.0 rather than 1e0
Removed parenthesis around pointer dereference
The autogeneration line should be at the top of the file. This changes the autogeneration template to do so
Change the template string literals from vars to constants
Only parse templates once.

The script defines a number of templates, and then parses them for each unit. There is no
need to parse them more than once. This changes the parsing to be a variable declaration
rather than in the loop
Ran the autogen script with the previous commits
Merge pull request #4 from btracey/master

Autogenerate unit files