Cascading delete and existence validations

Adds `:dependent => destroy` and validates existence of associations.