Refactor act_on_all_archival_associations

Hi,

I really like your gem, I think it's a simpler and cleaner solution than acts_as_paranoid.

I got a bit confused by the `act_on_all_archival_associations` method though.
So in an attempt to make it more readable I decided to extract it's logic into separate classes.

What do you think?