Merge pull request #44 from MorganDawe/7.x.schema

7.x.schema
Some basic cleanup and refactoring so that I can use the internals of these
functions elsewhere.
Merge pull request #46 from nigelgbanks/7.x-EMIC-59-versionable-object-forms

Some basic cleanup and refactoring so that I can use the internals of these functions elsewhere.