Reworked the tests so they are more simple and easy to check.
Added additional models to keep track of the Lessons inserts and deletes, so it will be easier to roll back potentially destructive changes.
solved bug (commited too fast)
Finished models.

Lesson has an abstract superclass now (LessonCommon). LessonArchive derives from LessonCommon. This way, new entries on LessonArchive are kept independent from Lesson (if not, each LessonArchive creates a Lesson, and that makes deletion impossible).

The test cases should be enough to ensure that everything works as expected.

The _lessondelete_delete signal has been modified, because it resulted in a dependency that made the model crash. If you deleted the LessonArchive, due to the cascading behaviour, the LessonDelete was deleted too, and when de LessonDelete was being deleted, due to the signal, it tried to delete the LessonArchive that triggered the delition in the first place, so it crashed. With the DoesNotExist exception, when LessonDelete tries to erase something that has already been erased, shuts up and the code works fine.