Save and delete callbacks + Testcases

Allow subclasses of Model to be notified before save and delete
operations take place and optionally raise an exception if the framework
shouldn’t continue with the operation.