Add soft_undelete callbacks

Adds `before_soft_undelete` and `after_soft_undelete` for some consistency with the `before_soft_delete` and `after_soft_delete` callbacks.