Adds recursive dependency destruction.

Also supports has_one relationships and some odd edge cases.