Ensures that cascade delete for Soft_Delete will delete temporal models as well. Closes #250.

This also does a little refactoring to allow subclasses more flexability control if a relation is cascade deleted or not. This could possibly be an example of how the model class could end up, with lots of smaller methods that allow a more granualr level of overriding and therefore greater flexibility.