Squashes temporal branch for PR-ability

Updated model to allow PKs to be saved correctly

Code cleanup. Basic temporal model is working after changes to base model class

Comments and code cleanup

Made the primary key assignment when creating new entry more flexable.

Find has been overridden to allow the timestamp to be automatically inserted, ensuring that the latest revision is always loaded

Overriden find method to return most recent entry by default. Also added find_revision to get a data state at a given time

Commit to preserve super awesome query

Fixed find_revision. Now fully working

Removed hardocded 0 timestamps

Added basic (but still broken) find_revisions_between

Fully working find_revisions_between

Added basic relations suport to find_revision()

Updated missed hardcoded 0 value

Added todo comment

Updated fetching properties

Updated find and save to use dual timestamps

Fixed find

Removed stray query dump

Updated find_revision to use dual timestamps

Updated find_revisions_between for dual timestamp use (I think)

Commit before switching to another task

Removed stay `get_called_class()` call

Adds basic support for finding related entities at a given revision

Fixes formatting and adds comments

Removes unused function

Adds missing comment

Adds missing PK check back into model.php and fixes minor typos

Fixes error where array keys are empty when using find

Enables id to be auto-populated on first save

Fixes new properties not getting set correctly

Fixes relations not being loaded when using find

Makes id only pk check toggle methods private again

Adds soft delete functionality

Adds overwrite functionality

Adds restore functionality

Adds purge functionality
Merge pull request #211 from stevewest/temporal-squashed

Temporal/Revisions Model