afterDestroy not called on failed destroy; tests added for other afterXXX handlers on error

Added functionality and tests for afterDestroy error cases.

Also added tests for prevention of afterCreate and afterUpdate in error cases, both already implemented.


A thought: what if all of these afterXXX handlers were still called on error, but the model's errors field had been set? That would allow anything set up in beforeCreate to be cleaned up in afterCreate, even if an error happened.