feat: #48 refactor exercise check
requested to merge maintenance/#48-uml-puzzle-exercise-check into maintenance/#49-add-uml-puzzle-exercise
- Complete refactor of the Exercise classes (except the purely graphical ones, which will be tackled via another ticket)
- Complete refactor of the evaluation for whether a task has been completed or not
- Complete refactor of undo