Add AttributeArchive model and tests
Execute before_save method before checking for changes
Fix spelling test name spelling error
Add SpecificationArchive model and tests
Allow negative primary keys on archive models
Add LocalityArchive model and tests
Add ValueArchive model and tests
Move common archival functionality to a function