Add dependent destroy to several models, with tests