Moving "model" out of instance to prototype, as it doesn't change accross instances.
Huge changes to models and validation as a prerequisite to introduce the DM into the codebase.

Models now perform validation when the validation() method is explictly
called, rather than on setting of data.

The application has been updated to reflect this; calling validation()
and acting appropiately.