Update Model class to match new coding conventions of ModelComponent

This is pull request for work started on Hackathon, mainly improving Model class with new coding convention of ModelComponent (e.g. replacing the old property style with the new property style). This also deals with a bunch of issues: #95, #99, #100, #101, #102.
@sherm1 , travis-ci is not causing an error even though warnings are being generated and I'm using -Werror. Any idea why? Using -Werror worked for me locally.