Add singular_entries as a hash entry.

This adds singular_entries as an option to improve our ability to
distinguish between k = v entries and k entries.  Update the template to
remove all the repeated sections and rely on the hash to do the work.
Update the README and fix classes to match.

In the process of updating the README numerous fixes and tweaks to
classes were required.