Fixes deleting targets whose owner does not mixin DestroyedAt

Fixes #46 

Guards for when a target association's owner does not mixin DestroyedAt. Previously, `undefined_method` exception was being raised.

Attempts to DRY up some of the shared code for our association code by implementing `DestroyedAt.destroy_target_of_association`.