Reserved words

This builds from the last pull request, but concentrates on reserved words which are used as fields (e.g. version). Reserved words receive a post underscore (e.g. version_)