Revisited classes.lua and added an alternative class model that
implements a C3 MRO (much like python) and generates strict
instances (instances that will raise an error when attempting to reference
a member that was not previously assigned