Combined solution validation methods

Merged isValidPartialSolution and isValidSolution to reduce unnecessary
tree traversal
Lecture optimization

Added instance variable to lecture to count number of students enrolled
in the course, will prevent unnecessary traversal of student tree