Hackathon justin

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.
Most of these comments duplicate the string in the DECLARE_PROPERTY macro so are superfluous. But are doxygen comments needed for these things? If you haven't generated the doxygen and looked at it to make sure it makes sense now, please do!