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.
Using ReferencePtr causes this warning with clang (https://travis-ci.org/opensim-org/opensim-core/jobs/30225768#L3085):

```
/home/fitze/repos/opensim/2/opensim-core/OpenSim/Simulation/Model/Model.cpp:311:17: war
ning:                                                                                  
      comparison between NULL and non-pointer ('int' and NULL) [-Wnull-arithmetic]     
    if (_system == NULL)
```

can we change this check to `!_system`?