Version tracking

This PR adds the ability to store history of each document edits.
With each edits, each user will have the ability to:

- Compare changes with the latest version or with one of it's previous versions
- Rollback to one of the previous versions

@smebberson This is ready for review.
Note that this file requires the model has a property named modifiedBy which is not a default field in Linz. We need to discuss this and how to make it a dynamic field or make this field a default in Linz model.