Fix housekeeping of attributes for history changes
Add an "history_eql?" interface to compare instances

Changes of associated models won't always produce an ID change,
so a model can implement "history_eql?" having the same interface
as "eql?" but operating on two instances of the record in different
times.

We're using this to compare DragonFly models when the attached files
change during history.