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`.
This `else` and `return` shouldn't be necessary.