Implement timestamp behavior

closes #2215
Allow for use with any event

By allowing the behavior to act on any event, it's possible to easily
cater for soft delete (deleted_date) or any kind of custom event
(approval_date, rejection_date, published_date)