Add base data model.
Additional methods.
Add methods for getting and setting modification flag.
Add operator overloads for comparison.
Merge branch 'datamodels' into develop